From 49d5c5902105b17816f4fe92aaf4897142747fc0 Mon Sep 17 00:00:00 2001 From: Drew Powers Date: Tue, 16 Mar 2021 12:26:11 -0600 Subject: [PATCH 1/2] Add Prettier + ESLint --- .eslintrc.cjs | 14 + .prettierrc.json | 7 + package-lock.json | 917 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 8 + src/transform2.ts | 270 ++++++-------- 5 files changed, 1067 insertions(+), 149 deletions(-) create mode 100644 .eslintrc.cjs create mode 100644 .prettierrc.json diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 000000000000..a2fd0d08b5de --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + parser: '@typescript-eslint/parser', + extends: ['plugin:@typescript-eslint/recommended', 'prettier'], + plugins: ['@typescript-eslint', 'prettier'], + rules: { + '@typescript-eslint/camelcase': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', // in a foreign schema, sometimes we need β€œany” + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/no-var-requires': 'off', + 'prettier/prettier': 'error', + 'prefer-const': 'off', + }, +}; diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000000..3da31c1abfaa --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ +{ + "printWidth": 180, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5" +} diff --git a/package-lock.json b/package-lock.json index d548a377c381..fe56ac7a4bb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,6 +81,72 @@ "to-fast-properties": "^2.0.0" } }, + "@eslint/eslintrc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "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 + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -96,6 +162,12 @@ "defer-to-connect": "^1.0.1" } }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, "@types/node": { "version": "14.14.34", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.34.tgz", @@ -113,6 +185,111 @@ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, + "@typescript-eslint/eslint-plugin": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz", + "integrity": "sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.18.0", + "@typescript-eslint/scope-manager": "4.18.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz", + "integrity": "sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.18.0", + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/typescript-estree": "4.18.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz", + "integrity": "sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.18.0", + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/typescript-estree": "4.18.0", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz", + "integrity": "sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/visitor-keys": "4.18.0" + } + }, + "@typescript-eslint/types": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz", + "integrity": "sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz", + "integrity": "sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/visitor-keys": "4.18.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz", + "integrity": "sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.18.0", + "eslint-visitor-keys": "^2.0.0" + } + }, "@vue/compiler-core": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.7.tgz", @@ -202,6 +379,24 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", @@ -236,6 +431,12 @@ } } }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", @@ -269,6 +470,18 @@ "sprintf-js": "~1.0.2" } }, + "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 + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, "astring": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/astring/-/astring-1.7.0.tgz", @@ -371,6 +584,12 @@ } } }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -664,6 +883,17 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "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, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -729,6 +959,12 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, "default-browser-id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-2.0.0.tgz", @@ -755,6 +991,24 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "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, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", @@ -823,6 +1077,15 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -865,17 +1128,247 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "eslint": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", + "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.21", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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 + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-config-prettier": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", + "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "dev": true + }, + "eslint-plugin-prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, "estree-walker": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.0.tgz", "integrity": "sha512-s6ceX0NFiU/vKPiKvFdR83U1Zffu7upwZsGwpoqfg5rbbq1l50WQ5hCeIvM6E6oD4shUHCYMsiFPns4Jk0YfMQ==", "dev": true }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -884,6 +1377,62 @@ "is-extendable": "^0.1.0" } }, + "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 + }, + "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 + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "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 + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "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, + "requires": { + "flat-cache": "^3.0.4" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -893,6 +1442,22 @@ "to-regex-range": "^5.0.1" } }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -910,6 +1475,12 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -957,6 +1528,37 @@ "ini": "1.3.7" } }, + "globals": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz", + "integrity": "sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + }, + "dependencies": { + "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 + } + } + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -1068,12 +1670,28 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "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, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -1254,6 +1872,12 @@ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1280,6 +1904,18 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "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 + }, + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -1308,6 +1944,16 @@ "package-json": "^6.3.0" } }, + "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, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -1393,6 +2039,15 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", @@ -1423,6 +2078,12 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", @@ -1482,6 +2143,16 @@ "micromark": "~2.11.0" } }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -1514,6 +2185,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "nodemon": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", @@ -1617,6 +2294,20 @@ "is-wsl": "^2.1.1" } }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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" + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -1648,6 +2339,15 @@ } } }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", @@ -1679,11 +2379,23 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "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 + }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, + "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 + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -1710,12 +2422,33 @@ "pretty-format": "^3.8.0" } }, + "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 + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "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, + "requires": { + "fast-diff": "^1.1.2" + } + }, "pretty-format": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", @@ -1728,6 +2461,12 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -1744,6 +2483,12 @@ "once": "^1.3.1" } }, + "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 + }, "pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", @@ -1753,6 +2498,12 @@ "escape-goat": "^2.0.0" } }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", + "dev": true + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -1825,6 +2576,12 @@ "picomatch": "^2.2.1" } }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -1849,6 +2606,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", @@ -1858,6 +2621,12 @@ "path-parse": "^1.0.6" } }, + "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 + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -1867,6 +2636,21 @@ "lowercase-keys": "^1.0.0" } }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "rollup": { "version": "2.41.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.41.4.tgz", @@ -1875,6 +2659,15 @@ "fsevents": "~2.3.1" } }, + "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, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "rxjs": { "version": "6.6.6", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", @@ -1930,12 +2723,44 @@ } } }, + "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, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "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 + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, "snowpack": { "version": "3.1.0-pre.13", "resolved": "https://registry.npmjs.org/snowpack/-/snowpack-3.1.0-pre.13.tgz", @@ -2071,12 +2896,50 @@ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.35.0.tgz", "integrity": "sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==" }, + "table": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "dev": true, + "requires": { + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.1.tgz", + "integrity": "sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -2166,6 +3029,24 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "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, + "requires": { + "prelude-ls": "^1.2.1" + } + }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -2249,6 +3130,15 @@ "xdg-basedir": "^4.0.0" } }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -2263,6 +3153,12 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -2283,6 +3179,15 @@ "@vue/shared": "3.0.7" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -2292,6 +3197,12 @@ "string-width": "^4.0.0" } }, + "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 + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -2356,6 +3267,12 @@ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 6af7ca0d8f03..292b5693f350 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,9 @@ }, "scripts": { "build": "tsc && npm run copy-js", + "lint": "eslint 'src/**/*.{js,ts}'", "dev": "concurrently 'tsc --watch' 'npm run copy-js:watch'", + "format": "prettier -w 'src/**/*.{js,ts}'", "copy-js": "copyfiles -u 1 src/*.js lib/", "copy-js:watch": "nodemon -w src --ext js --exec 'npm run copy-js'" }, @@ -45,12 +47,18 @@ }, "devDependencies": { "@types/yargs-parser": "^20.2.0", + "@typescript-eslint/eslint-plugin": "^4.18.0", + "@typescript-eslint/parser": "^4.18.0", "concurrently": "^6.0.0", "copyfiles": "^2.4.1", + "eslint": "^7.22.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-prettier": "^3.3.1", "estree-walker": "^3.0.0", "nodemon": "^2.0.7", "preact": "^10.5.12", "preact-render-to-string": "^5.1.14", + "prettier": "^2.2.1", "typescript": "^4.2.3" } } diff --git a/src/transform2.ts b/src/transform2.ts index 485c575c630f..ab516deacfb0 100644 --- a/src/transform2.ts +++ b/src/transform2.ts @@ -1,15 +1,15 @@ -import type { TemplateNode } from "./@types/compiler/interfaces"; - -import path from "path"; -import astring from "astring"; -import esbuild from "esbuild"; -import eslexer from "es-module-lexer"; -import micromark from "micromark"; -import gfmSyntax from "micromark-extension-gfm"; -import matter from "gray-matter"; +import type { TemplateNode } from './@types/compiler/interfaces'; + +import path from 'path'; +import astring from 'astring'; +import esbuild from 'esbuild'; +import eslexer from 'es-module-lexer'; +import micromark from 'micromark'; +import gfmSyntax from 'micromark-extension-gfm'; +import matter from 'gray-matter'; // @ts-ignore -import gfmHtml from "micromark-extension-gfm/html.js"; -import { walk, parse } from "./compiler.js"; +import gfmHtml from 'micromark-extension-gfm/html.js'; +import { walk, parse } from './compiler.js'; import markdownEncode from './markdown-encode.js'; import { preparse } from './parser.js'; @@ -18,18 +18,20 @@ const { transformSync } = esbuild; interface Attribute { start: 574; end: 595; - type: "Attribute"; - name: "class"; + type: 'Attribute'; + name: 'class'; value: any; } interface CompileOptions { - resolve: (p: string) => string + resolve: (p: string) => string; } const defaultCompileOptions: CompileOptions = { - resolve(p: string) { return p; } -} + resolve(p: string) { + return p; + }, +}; function internalImport(internalPath: string) { return `/__hmx_internal__/${internalPath}`; @@ -47,7 +49,7 @@ function getAttributes(attrs: Attribute[]): Record { } if (attr.value.length > 1) { result[attr.name] = - "(" + + '(' + attr.value .map((v: TemplateNode) => { if (v.expression) { @@ -56,21 +58,21 @@ function getAttributes(attrs: Attribute[]): Record { return JSON.stringify(getTextFromAttribute(v)); } }) - .join("+") + - ")"; + .join('+') + + ')'; continue; } const val: TemplateNode = attr.value[0]; switch (val.type) { - case "MustacheTag": - result[attr.name] = "(" + val.expression + ")"; + case 'MustacheTag': + result[attr.name] = '(' + val.expression + ')'; continue; - case "Text": + case 'Text': result[attr.name] = JSON.stringify(getTextFromAttribute(val)); continue; default: console.log(val); - throw new Error("UNKNOWN V"); + throw new Error('UNKNOWN V'); } } return result; @@ -84,24 +86,20 @@ function getTextFromAttribute(attr: any): string { return attr.data; } console.log(attr); - throw new Error("UNKNOWN attr"); + throw new Error('UNKNOWN attr'); } function generateAttributes(attrs: Record): string { - let result: string = "{"; + let result: string = '{'; for (const [key, val] of Object.entries(attrs)) { - result += JSON.stringify(key) + ":" + val + ","; + result += JSON.stringify(key) + ':' + val + ','; } - return result + "}"; + return result + '}'; } -function getComponentWrapper( - _name: string, - { type, url }: { type: string; url: string }, - { resolve }: CompileOptions -) { - const [name, kind] = _name.split(":"); - switch(type) { +function getComponentWrapper(_name: string, { type, url }: { type: string; url: string }, { resolve }: CompileOptions) { + const [name, kind] = _name.split(':'); + switch (type) { case '.hmx': { if (kind) { throw new Error(`HMX does not support :${kind}`); @@ -112,11 +110,9 @@ function getComponentWrapper( }; } case '.jsx': { - if (kind === "dynamic") { + if (kind === 'dynamic') { return { - wrapper: `__preact_dynamic(${name}, new URL(${JSON.stringify( - url.replace(/\.[^.]+$/, ".js") - )}, \`http://TEST\${import.meta.url}\`).pathname, '${resolve('preact')}')`, + wrapper: `__preact_dynamic(${name}, new URL(${JSON.stringify(url.replace(/\.[^.]+$/, '.js'))}, \`http://TEST\${import.meta.url}\`).pathname, '${resolve('preact')}')`, wrapperImport: `import {__preact_dynamic} from '${internalImport('render/preact.js')}';`, }; } else { @@ -127,26 +123,22 @@ function getComponentWrapper( } } case '.svelte': { - if(kind === "dynamic") { + if (kind === 'dynamic') { return { - wrapper: `__svelte_dynamic(${name}, new URL(${JSON.stringify( - url.replace(/\.[^.]+$/, ".svelte.js") - )}, \`http://TEST\${import.meta.url}\`).pathname)`, + wrapper: `__svelte_dynamic(${name}, new URL(${JSON.stringify(url.replace(/\.[^.]+$/, '.svelte.js'))}, \`http://TEST\${import.meta.url}\`).pathname)`, wrapperImport: `import {__svelte_dynamic} from '${internalImport('render/svelte.js')}';`, }; } else { return { wrapper: `__svelte_static(${name})`, - wrapperImport: `import {__svelte_static} from '${internalImport('render/svelte.js')}';` + wrapperImport: `import {__svelte_static} from '${internalImport('render/svelte.js')}';`, }; } } case '.vue': { - if(kind === "dynamic") { + if (kind === 'dynamic') { return { - wrapper: `__vue_dynamic(${name}, new URL(${JSON.stringify( - url.replace(/\.[^.]+$/, ".vue.js") - )}, \`http://TEST\${import.meta.url}\`).pathname, '${resolve('vue')}')`, + wrapper: `__vue_dynamic(${name}, new URL(${JSON.stringify(url.replace(/\.[^.]+$/, '.vue.js'))}, \`http://TEST\${import.meta.url}\`).pathname, '${resolve('vue')}')`, wrapperImport: `import {__vue_dynamic} from '${internalImport('render/vue.js')}';`, }; } else { @@ -154,42 +146,44 @@ function getComponentWrapper( wrapper: `__vue_static(${name})`, wrapperImport: ` import {__vue_static} from '${internalImport('render/vue.js')}'; - ` + `, }; } } } - throw new Error("Unknown Component Type: " + name); + throw new Error('Unknown Component Type: ' + name); } function runPreparser(template: string): string { - const doc = preparse(template, tag => { - if(tag.tagName === 'script') { + const doc = preparse(template, (tag) => { + if (tag.tagName === 'script') { let isSetup = false; - for(let attr of tag.attributes) { - if(attr.name === 'hmx' && attr.value === 'setup') { + for (let attr of tag.attributes) { + if (attr.name === 'hmx' && attr.value === 'setup') { isSetup = true; break; } } - if(isSetup && typeof tag.children[0] === 'string') { + if (isSetup && typeof tag.children[0] === 'string') { debugger; const content = tag.children[0]; let { code } = transformSync(content, { - loader: "tsx", - jsxFactory: "h", - jsxFragment: "Fragment", - charset: "utf8", + loader: 'tsx', + jsxFactory: 'h', + jsxFragment: 'Fragment', + charset: 'utf8', }); return { ...tag, - children: [{ - type: 0, - data: code, - start: 0, - end: 0 - }] + children: [ + { + type: 0, + data: code, + start: 0, + end: 0, + }, + ], }; } } @@ -209,9 +203,9 @@ async function convertHmxToJsx(template: string, compileOptions: CompileOptions) const ast = parse(template, {}); // Todo: Validate that `h` and `Fragment` aren't defined in the script - const script = ast.instance ? astring.generate(ast.instance.content) : ""; + const script = ast.instance ? astring.generate(ast.instance.content) : ''; - const [scriptImports] = eslexer.parse(script, "optional-sourcename"); + const [scriptImports] = eslexer.parse(script, 'optional-sourcename'); const components = Object.fromEntries( scriptImports.map((imp) => { const componentType = path.posix.extname(imp.n!); @@ -222,7 +216,7 @@ async function convertHmxToJsx(template: string, compileOptions: CompileOptions) const additionalImports = new Set(); let items: { name: string; jsx: string }[] = []; - let mode: "JSX" | "SCRIPT" | "SLOT" = "JSX"; + let mode: 'JSX' | 'SCRIPT' | 'SLOT' = 'JSX'; let collectionItem: { name: string; jsx: string } | undefined; let currentItemName: string | undefined; let currentDepth = 0; @@ -230,14 +224,14 @@ async function convertHmxToJsx(template: string, compileOptions: CompileOptions) walk(ast.html as any, { // @ts-ignore enter(node: TemplateNode, parent, prop, index) { - // console.log("enter", node.type); + // console.log("enter", node.type); switch (node.type) { - case "MustacheTag": + case 'MustacheTag': let { code } = transformSync(node.expression, { - loader: "jsx", - jsxFactory: "h", - jsxFragment: "Fragment", - charset: "utf8", + loader: 'jsx', + jsxFactory: 'h', + jsxFragment: 'Fragment', + charset: 'utf8', }); let matches: RegExpExecArray[] = []; @@ -249,142 +243,127 @@ async function convertHmxToJsx(template: string, compileOptions: CompileOptions) } for (const match of matches.reverse()) { const name = match[1]; - const [componentName, componentKind] = name.split(":"); + const [componentName, componentKind] = name.split(':'); if (!components[componentName]) { throw new Error(`Unknown Component: ${componentName}`); } - const { wrapper, wrapperImport } = getComponentWrapper( - name, - components[componentName], - compileOptions - ); + const { wrapper, wrapperImport } = getComponentWrapper(name, components[componentName], compileOptions); if (wrapperImport) { additionalImports.add(wrapperImport); } if (wrapper !== name) { - code = - code.slice(0, match.index + 2) + - wrapper + - code.slice(match.index + match[0].length - 1); + code = code.slice(0, match.index + 2) + wrapper + code.slice(match.index + match[0].length - 1); } } - collectionItem!.jsx += `,(${code.trim().replace(/\;$/, "")})`; + collectionItem!.jsx += `,(${code.trim().replace(/\;$/, '')})`; return; - case "Slot": - mode = "SLOT"; + case 'Slot': + mode = 'SLOT'; collectionItem!.jsx += `,child`; return; - case "Comment": + case 'Comment': return; - case "Fragment": + case 'Fragment': // Ignore if its the top level fragment // This should be cleaned up, but right now this is how the old thing worked if (!collectionItem) { return; } - case "InlineComponent": - case "Element": + case 'InlineComponent': + case 'Element': const name: string = node.name; if (!name) { console.log(node); - throw new Error("AHHHH"); + throw new Error('AHHHH'); } const attributes = getAttributes(node.attributes); currentDepth++; currentItemName = name; if (!collectionItem) { - collectionItem = { name, jsx: "" }; + collectionItem = { name, jsx: '' }; items.push(collectionItem); } - collectionItem.jsx += collectionItem.jsx === "" ? "" : ","; + collectionItem.jsx += collectionItem.jsx === '' ? '' : ','; const COMPONENT_NAME_SCANNER = /^[A-Z]/; if (!COMPONENT_NAME_SCANNER.test(name)) { - collectionItem.jsx += `h("${name}", ${ - attributes ? generateAttributes(attributes) : "null" - }`; + collectionItem.jsx += `h("${name}", ${attributes ? generateAttributes(attributes) : 'null'}`; return; } if (name === 'Component') { collectionItem.jsx += `h(Fragment, null`; return; } - const [componentName, componentKind] = name.split(":"); + const [componentName, componentKind] = name.split(':'); const componentImportData = components[componentName]; if (!componentImportData) { throw new Error(`Unknown Component: ${componentName}`); } - const { wrapper, wrapperImport } = getComponentWrapper( - name, - components[componentName], - compileOptions - ); + const { wrapper, wrapperImport } = getComponentWrapper(name, components[componentName], compileOptions); if (wrapperImport) { additionalImports.add(wrapperImport); } - collectionItem.jsx += `h(${wrapper}, ${ - attributes ? generateAttributes(attributes) : "null" - }`; + collectionItem.jsx += `h(${wrapper}, ${attributes ? generateAttributes(attributes) : 'null'}`; return; - case "Attribute": { + case 'Attribute': { this.skip(); return; } - case "Text": { + case 'Text': { const text = getTextFromAttribute(node); - if (mode === "SLOT") { + if (mode === 'SLOT') { return; } if (!text.trim()) { return; } if (!collectionItem) { - throw new Error("Not possible! TEXT:" + text); + throw new Error('Not possible! TEXT:' + text); } - if (currentItemName === "script" || currentItemName === "code") { - collectionItem.jsx += "," + JSON.stringify(text); + if (currentItemName === 'script' || currentItemName === 'code') { + collectionItem.jsx += ',' + JSON.stringify(text); return; } - collectionItem.jsx += "," + JSON.stringify(text); + collectionItem.jsx += ',' + JSON.stringify(text); return; } default: console.log(node); - throw new Error("Unexpected node type: " + node.type); + throw new Error('Unexpected node type: ' + node.type); } }, // @ts-ignore leave(node: TemplateNode, parent, prop, index) { - // console.log("leave", node.type); + // console.log("leave", node.type); switch (node.type) { - case "Text": - case "MustacheTag": - case "Attribute": - case "Comment": + case 'Text': + case 'MustacheTag': + case 'Attribute': + case 'Comment': return; - case "Slot": { + case 'Slot': { const name = node.name; - if (name === "slot") { - mode = "JSX"; + if (name === 'slot') { + mode = 'JSX'; } return; } - case "Fragment": + case 'Fragment': if (!collectionItem) { return; } - case "Element": - case "InlineComponent": + case 'Element': + case 'InlineComponent': if (!collectionItem) { - throw new Error("Not possible! CLOSE " + node.name); + throw new Error('Not possible! CLOSE ' + node.name); } - collectionItem.jsx += ")"; + collectionItem.jsx += ')'; currentDepth--; if (currentDepth === 0) { collectionItem = undefined; } return; default: - throw new Error("Unexpected node type: " + node.type); + throw new Error('Unexpected node type: ' + node.type); } }, }); @@ -398,7 +377,7 @@ async function convertHmxToJsx(template: string, compileOptions: CompileOptions) */ return { - script: script + "\n" + Array.from(additionalImports).join("\n"), + script: script + '\n' + Array.from(additionalImports).join('\n'), items, }; } @@ -427,36 +406,31 @@ async function convertMdToJsx(contents: string, compileOptions: CompileOptions) }, }; - return convertHmxToJsx(`${mdHtml}`, compileOptions); + }${mdHtml}`, + compileOptions + ); } -async function transformFromSource( - contents: string, - filename: string, - compileOptions: CompileOptions -): Promise> { +async function transformFromSource(contents: string, filename: string, compileOptions: CompileOptions): Promise> { switch (path.extname(filename)) { - case ".hmx": + case '.hmx': return convertHmxToJsx(contents, compileOptions); - case ".md": + case '.md': return convertMdToJsx(contents, compileOptions); default: - throw new Error("Not Supported!"); + throw new Error('Not Supported!'); } } export async function compilePage(source: string, filename: string, opts: CompileOptions = defaultCompileOptions) { const sourceJsx = await transformFromSource(source, filename, opts); - const headItem = sourceJsx.items.find((item) => item.name === "head"); - const bodyItem = sourceJsx.items.find((item) => item.name === "body"); - const headItemJsx = !headItem - ? "null" - : headItem.jsx.replace('"head"', 'isRoot ? "head" : Fragment'); - const bodyItemJsx = !bodyItem - ? "null" - : bodyItem.jsx.replace('"head"', 'isRoot ? "body" : Fragment'); + const headItem = sourceJsx.items.find((item) => item.name === 'head'); + const bodyItem = sourceJsx.items.find((item) => item.name === 'body'); + const headItemJsx = !headItem ? 'null' : headItem.jsx.replace('"head"', 'isRoot ? "head" : Fragment'); + const bodyItemJsx = !bodyItem ? 'null' : bodyItem.jsx.replace('"head"', 'isRoot ? "body" : Fragment'); const modJsx = ` ${sourceJsx.script} @@ -473,9 +447,7 @@ export function body({title, description, props}, child, isRoot) { return (${bod export async function compileComponent(source: string, filename: string, opts: CompileOptions = defaultCompileOptions) { const sourceJsx = await transformFromSource(source, filename, opts); - const componentJsx = sourceJsx.items.find( - (item) => item.name === "Component" - ); + const componentJsx = sourceJsx.items.find((item) => item.name === 'Component'); if (!componentJsx) { throw new Error(`${filename} expected!`); } From 3bcfc9c4160940de0d09e31a9b9e7c77babc5b82 Mon Sep 17 00:00:00 2001 From: Drew Powers Date: Tue, 16 Mar 2021 12:26:59 -0600 Subject: [PATCH 2/2] Format files --- .eslintrc.cjs | 1 - src/@types/astro.ts | 3 +- src/@types/compiler/Stats.d.ts | 32 +- src/@types/compiler/compile/Component.d.ts | 236 +- .../compiler/compile/create_module.d.ts | 20 +- src/@types/compiler/compile/css/Selector.d.ts | 40 +- .../compiler/compile/css/Stylesheet.d.ts | 108 +- .../compiler/compile/css/interfaces.d.ts | 8 +- src/@types/compiler/compile/index.d.ts | 43 +- src/@types/compiler/compile/nodes/Action.d.ts | 12 +- .../compiler/compile/nodes/Animation.d.ts | 8 +- .../compiler/compile/nodes/Attribute.d.ts | 110 +- .../compiler/compile/nodes/AwaitBlock.d.ts | 20 +- .../compiler/compile/nodes/Binding.d.ts | 16 +- src/@types/compiler/compile/nodes/Body.d.ts | 6 +- .../compiler/compile/nodes/CatchBlock.d.ts | 6 +- src/@types/compiler/compile/nodes/Class.d.ts | 8 +- .../compiler/compile/nodes/Comment.d.ts | 8 +- .../compiler/compile/nodes/DebugTag.d.ts | 6 +- .../compile/nodes/DefaultSlotTemplate.d.ts | 12 +- .../compiler/compile/nodes/EachBlock.d.ts | 28 +- .../compiler/compile/nodes/Element.d.ts | 54 +- .../compiler/compile/nodes/ElseBlock.d.ts | 4 +- .../compiler/compile/nodes/EventHandler.d.ts | 18 +- .../compiler/compile/nodes/Fragment.d.ts | 10 +- src/@types/compiler/compile/nodes/Head.d.ts | 8 +- .../compiler/compile/nodes/IfBlock.d.ts | 8 +- .../compile/nodes/InlineComponent.d.ts | 22 +- .../compiler/compile/nodes/KeyBlock.d.ts | 6 +- src/@types/compiler/compile/nodes/Let.d.ts | 10 +- .../compiler/compile/nodes/MustacheTag.d.ts | 2 +- .../compiler/compile/nodes/Options.d.ts | 2 +- .../compiler/compile/nodes/PendingBlock.d.ts | 4 +- .../compile/nodes/RawMustacheTag.d.ts | 2 +- src/@types/compiler/compile/nodes/Slot.d.ts | 12 +- .../compiler/compile/nodes/SlotTemplate.d.ts | 16 +- src/@types/compiler/compile/nodes/Text.d.ts | 10 +- .../compiler/compile/nodes/ThenBlock.d.ts | 6 +- src/@types/compiler/compile/nodes/Title.d.ts | 8 +- .../compiler/compile/nodes/Transition.d.ts | 12 +- src/@types/compiler/compile/nodes/Window.d.ts | 10 +- .../compiler/compile/nodes/interfaces.d.ts | 35 +- .../compile/nodes/shared/AbstractBlock.d.ts | 8 +- .../compile/nodes/shared/Context.d.ts | 8 +- .../compile/nodes/shared/Expression.d.ts | 32 +- .../compiler/compile/nodes/shared/Node.d.ts | 30 +- .../compiler/compile/nodes/shared/Tag.d.ts | 8 +- .../compile/nodes/shared/TemplateScope.d.ts | 22 +- .../compile/nodes/shared/map_children.d.ts | 25 +- .../compiler/compile/render_dom/Block.d.ts | 141 +- .../compiler/compile/render_dom/Renderer.d.ts | 75 +- .../compiler/compile/render_dom/index.d.ts | 9 +- .../render_dom/wrappers/AwaitBlock.d.ts | 52 +- .../compile/render_dom/wrappers/Body.d.ts | 8 +- .../compile/render_dom/wrappers/DebugTag.d.ts | 6 +- .../render_dom/wrappers/EachBlock.d.ts | 105 +- .../wrappers/Element/Attribute.d.ts | 273 +- .../render_dom/wrappers/Element/Binding.d.ts | 32 +- .../wrappers/Element/EventHandler.d.ts | 10 +- .../wrappers/Element/SpreadAttribute.d.ts | 3 +- .../wrappers/Element/StyleAttribute.d.ts | 12 +- .../render_dom/wrappers/Element/index.d.ts | 50 +- .../compile/render_dom/wrappers/Fragment.d.ts | 6 +- .../compile/render_dom/wrappers/Head.d.ts | 8 +- .../compile/render_dom/wrappers/IfBlock.d.ts | 120 +- .../wrappers/InlineComponent/index.d.ts | 26 +- .../compile/render_dom/wrappers/KeyBlock.d.ts | 18 +- .../render_dom/wrappers/MustacheTag.d.ts | 6 +- .../render_dom/wrappers/RawMustacheTag.d.ts | 6 +- .../compile/render_dom/wrappers/Slot.d.ts | 18 +- .../render_dom/wrappers/SlotTemplate.d.ts | 18 +- .../compile/render_dom/wrappers/Text.d.ts | 14 +- .../compile/render_dom/wrappers/Title.d.ts | 6 +- .../compile/render_dom/wrappers/Window.d.ts | 8 +- .../render_dom/wrappers/shared/Tag.d.ts | 84 +- .../render_dom/wrappers/shared/Wrapper.d.ts | 30 +- .../render_dom/wrappers/shared/bind_this.d.ts | 2 +- .../wrappers/shared/get_slot_definition.d.ts | 28 +- .../compiler/compile/render_ssr/Renderer.d.ts | 46 +- .../compile/render_ssr/handlers/Slot.d.ts | 8 +- .../render_ssr/handlers/SlotTemplate.d.ts | 8 +- .../compiler/compile/render_ssr/index.d.ts | 9 +- .../compile/utils/flatten_reference.d.ts | 10 +- .../compiler/compile/utils/get_slot_data.d.ts | 86 +- .../compile/utils/replace_object.d.ts | 74 +- src/@types/compiler/compile/utils/scope.d.ts | 10 +- .../compiler/compile/utils/stringify.d.ts | 17 +- src/@types/compiler/index.d.ts | 2 +- src/@types/compiler/interfaces.d.ts | 207 +- src/@types/compiler/parse/index.d.ts | 62 +- src/@types/compiler/parse/read/context.d.ts | 8 +- src/@types/compiler/parse/utils/entities.d.ts | 4062 +- src/@types/compiler/preprocess/index.d.ts | 8 +- src/@types/compiler/preprocess/types.d.ts | 33 +- src/@types/compiler/utils/error.d.ts | 7 +- src/@types/compiler/utils/link.d.ts | 6 +- src/@types/compiler/utils/mapped_code.d.ts | 24 +- src/@types/compiler/utils/namespaces.d.ts | 14 +- src/cli.ts | 27 +- src/compiler.d.ts | 2 +- src/compiler.js | 34103 ++++++++-------- src/dev.ts | 61 +- src/frontend/h.ts | 5 +- src/frontend/render/preact.ts | 28 +- src/frontend/render/svelte.ts | 4 +- src/frontend/render/vue.ts | 8 +- src/generate.ts | 29 +- src/markdown-encode.ts | 16 +- src/parser.ts | 82 +- 109 files changed, 20336 insertions(+), 21027 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index a2fd0d08b5de..15cc40908745 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -5,7 +5,6 @@ module.exports = { rules: { '@typescript-eslint/camelcase': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', // in a foreign schema, sometimes we need β€œany” '@typescript-eslint/no-use-before-define': 'off', '@typescript-eslint/no-var-requires': 'off', 'prettier/prettier': 'error', diff --git a/src/@types/astro.ts b/src/@types/astro.ts index 493d7d22a492..71006759915d 100644 --- a/src/@types/astro.ts +++ b/src/@types/astro.ts @@ -1,4 +1,3 @@ - export interface AstroConfigRaw { dist: string; projectRoot: string; @@ -9,4 +8,4 @@ export interface AstroConfig { dist: string; projectRoot: URL; hmxRoot: URL; -} \ No newline at end of file +} diff --git a/src/@types/compiler/Stats.d.ts b/src/@types/compiler/Stats.d.ts index 0e01e61f982a..3ada0dab20c7 100644 --- a/src/@types/compiler/Stats.d.ts +++ b/src/@types/compiler/Stats.d.ts @@ -1,22 +1,22 @@ interface Timing { - label: string; - start: number; - end: number; - children: Timing[]; + label: string; + start: number; + end: number; + children: Timing[]; } export default class Stats { - start_time: number; - current_timing: Timing; - current_children: Timing[]; - timings: Timing[]; - stack: Timing[]; - constructor(); - start(label: any): void; - stop(label: any): void; - render(): { - timings: { - total: number; - }; + start_time: number; + current_timing: Timing; + current_children: Timing[]; + timings: Timing[]; + stack: Timing[]; + constructor(); + start(label: any): void; + stop(label: any): void; + render(): { + timings: { + total: number; }; + }; } export {}; diff --git a/src/@types/compiler/compile/Component.d.ts b/src/@types/compiler/compile/Component.d.ts index 483c5f83de22..0cfb1b8be755 100644 --- a/src/@types/compiler/compile/Component.d.ts +++ b/src/@types/compiler/compile/Component.d.ts @@ -8,123 +8,131 @@ import Slot from './nodes/Slot'; import { Node, ImportDeclaration, Identifier } from 'estree'; import Element from './nodes/Element'; interface ComponentOptions { - namespace?: string; - tag?: string; - immutable?: boolean; - accessors?: boolean; - preserveWhitespace?: boolean; + namespace?: string; + tag?: string; + immutable?: boolean; + accessors?: boolean; + preserveWhitespace?: boolean; } export default class Component { - stats: Stats; - warnings: Warning[]; - ignores: Set; - ignore_stack: Array>; + stats: Stats; + warnings: Warning[]; + ignores: Set; + ignore_stack: Array>; + ast: Ast; + original_ast: Ast; + source: string; + name: Identifier; + compile_options: CompileOptions; + fragment: Fragment; + module_scope: Scope; + instance_scope: Scope; + instance_scope_map: WeakMap; + component_options: ComponentOptions; + namespace: string; + tag: string; + accessors: boolean; + vars: Var[]; + var_lookup: Map; + imports: ImportDeclaration[]; + hoistable_nodes: Set; + node_for_declaration: Map; + partly_hoisted: Array; + fully_hoisted: Array; + reactive_declarations: Array<{ + assignees: Set; + dependencies: Set; + node: Node; + declaration: Node; + }>; + reactive_declaration_nodes: Set; + has_reactive_assignments: boolean; + injected_reactive_declaration_vars: Set; + helpers: Map; + globals: Map; + indirect_dependencies: Map>; + file: string; + locate: ( + c: number + ) => { + line: number; + column: number; + }; + elements: Element[]; + stylesheet: Stylesheet; + aliases: Map; + used_names: Set; + globally_used_names: Set; + slots: Map; + slot_outlets: Set; + constructor(ast: Ast, source: string, name: string, compile_options: CompileOptions, stats: Stats, warnings: Warning[]); + add_var(variable: Var): void; + add_reference(name: string): void; + alias(name: string): Identifier; + apply_stylesheet(element: Element): void; + global(name: string): Identifier; + generate(result?: { + js: Node[]; + css: CssResult; + }): { + js: any; + css: any; ast: Ast; - original_ast: Ast; - source: string; - name: Identifier; - compile_options: CompileOptions; - fragment: Fragment; - module_scope: Scope; - instance_scope: Scope; - instance_scope_map: WeakMap; - component_options: ComponentOptions; - namespace: string; - tag: string; - accessors: boolean; - vars: Var[]; - var_lookup: Map; - imports: ImportDeclaration[]; - hoistable_nodes: Set; - node_for_declaration: Map; - partly_hoisted: Array<(Node | Node[])>; - fully_hoisted: Array<(Node | Node[])>; - reactive_declarations: Array<{ - assignees: Set; - dependencies: Set; - node: Node; - declaration: Node; - }>; - reactive_declaration_nodes: Set; - has_reactive_assignments: boolean; - injected_reactive_declaration_vars: Set; - helpers: Map; - globals: Map; - indirect_dependencies: Map>; - file: string; - locate: (c: number) => { - line: number; - column: number; - }; - elements: Element[]; - stylesheet: Stylesheet; - aliases: Map; - used_names: Set; - globally_used_names: Set; - slots: Map; - slot_outlets: Set; - constructor(ast: Ast, source: string, name: string, compile_options: CompileOptions, stats: Stats, warnings: Warning[]); - add_var(variable: Var): void; - add_reference(name: string): void; - alias(name: string): Identifier; - apply_stylesheet(element: Element): void; - global(name: string): Identifier; - generate(result?: { - js: Node[]; - css: CssResult; - }): { - js: any; - css: any; - ast: Ast; - warnings: Warning[]; - vars: { - name: string; - export_name: string; - injected: boolean; - module: boolean; - mutated: boolean; - reassigned: boolean; - referenced: boolean; - writable: boolean; - referenced_from_script: boolean; - }[]; - stats: { - timings: { - total: number; - }; - }; + warnings: Warning[]; + vars: { + name: string; + export_name: string; + injected: boolean; + module: boolean; + mutated: boolean; + reassigned: boolean; + referenced: boolean; + writable: boolean; + referenced_from_script: boolean; + }[]; + stats: { + timings: { + total: number; + }; }; - get_unique_name(name: string, scope?: Scope): Identifier; - get_unique_name_maker(): (name: string) => Identifier; - error(pos: { - start: number; - end: number; - }, e: { - code: string; - message: string; - }): void; - warn(pos: { - start: number; - end: number; - }, warning: { - code: string; - message: string; - }): void; - extract_imports(node: any): void; - extract_exports(node: any): any; - extract_javascript(script: any): any; - walk_module_js(): void; - walk_instance_js_pre_template(): void; - walk_instance_js_post_template(): void; - post_template_walk(): void; - track_references_and_mutations(): void; - warn_on_undefined_store_value_references(node: Node, parent: Node, prop: string, scope: Scope): void; - loop_protect(node: any, scope: Scope, timeout: number): Node | null; - rewrite_props(get_insert: (variable: Var) => Node[]): void; - hoist_instance_declarations(): void; - extract_reactive_declarations(): void; - warn_if_undefined(name: string, node: any, template_scope: TemplateScope): void; - push_ignores(ignores: any): void; - pop_ignores(): void; + }; + get_unique_name(name: string, scope?: Scope): Identifier; + get_unique_name_maker(): (name: string) => Identifier; + error( + pos: { + start: number; + end: number; + }, + e: { + code: string; + message: string; + } + ): void; + warn( + pos: { + start: number; + end: number; + }, + warning: { + code: string; + message: string; + } + ): void; + extract_imports(node: any): void; + extract_exports(node: any): any; + extract_javascript(script: any): any; + walk_module_js(): void; + walk_instance_js_pre_template(): void; + walk_instance_js_post_template(): void; + post_template_walk(): void; + track_references_and_mutations(): void; + warn_on_undefined_store_value_references(node: Node, parent: Node, prop: string, scope: Scope): void; + loop_protect(node: any, scope: Scope, timeout: number): Node | null; + rewrite_props(get_insert: (variable: Var) => Node[]): void; + hoist_instance_declarations(): void; + extract_reactive_declarations(): void; + warn_if_undefined(name: string, node: any, template_scope: TemplateScope): void; + push_ignores(ignores: any): void; + pop_ignores(): void; } export {}; diff --git a/src/@types/compiler/compile/create_module.d.ts b/src/@types/compiler/compile/create_module.d.ts index e6a18226c094..075ccc5afe46 100644 --- a/src/@types/compiler/compile/create_module.d.ts +++ b/src/@types/compiler/compile/create_module.d.ts @@ -1,14 +1,24 @@ import { ModuleFormat } from '../interfaces'; import { Identifier, ImportDeclaration } from 'estree'; interface Export { - name: string; - as: string; + name: string; + as: string; } -export default function create_module(program: any, format: ModuleFormat, name: Identifier, banner: string, sveltePath: string, helpers: Array<{ +export default function create_module( + program: any, + format: ModuleFormat, + name: Identifier, + banner: string, + sveltePath: string, + helpers: Array<{ name: string; alias: Identifier; -}>, globals: Array<{ + }>, + globals: Array<{ name: string; alias: Identifier; -}>, imports: ImportDeclaration[], module_exports: Export[]): void; + }>, + imports: ImportDeclaration[], + module_exports: Export[] +): void; export {}; diff --git a/src/@types/compiler/compile/css/Selector.d.ts b/src/@types/compiler/compile/css/Selector.d.ts index 2ab73c3b6fdd..f49f69234a8f 100644 --- a/src/@types/compiler/compile/css/Selector.d.ts +++ b/src/@types/compiler/compile/css/Selector.d.ts @@ -4,27 +4,27 @@ import { CssNode } from './interfaces'; import Component from '../Component'; import Element from '../nodes/Element'; export default class Selector { - node: CssNode; - stylesheet: Stylesheet; - blocks: Block[]; - local_blocks: Block[]; - used: boolean; - constructor(node: CssNode, stylesheet: Stylesheet); - apply(node: Element): void; - minify(code: MagicString): void; - transform(code: MagicString, attr: string, max_amount_class_specificity_increased: number): void; - validate(component: Component): void; - get_amount_class_specificity_increased(): number; + node: CssNode; + stylesheet: Stylesheet; + blocks: Block[]; + local_blocks: Block[]; + used: boolean; + constructor(node: CssNode, stylesheet: Stylesheet); + apply(node: Element): void; + minify(code: MagicString): void; + transform(code: MagicString, attr: string, max_amount_class_specificity_increased: number): void; + validate(component: Component): void; + get_amount_class_specificity_increased(): number; } declare class Block { - global: boolean; - host: boolean; - combinator: CssNode; - selectors: CssNode[]; - start: number; - end: number; - should_encapsulate: boolean; - constructor(combinator: CssNode); - add(selector: CssNode): void; + global: boolean; + host: boolean; + combinator: CssNode; + selectors: CssNode[]; + start: number; + end: number; + should_encapsulate: boolean; + constructor(combinator: CssNode); + add(selector: CssNode): void; } export {}; diff --git a/src/@types/compiler/compile/css/Stylesheet.d.ts b/src/@types/compiler/compile/css/Stylesheet.d.ts index 5f80d2a27ffc..71a1a24ca9a8 100644 --- a/src/@types/compiler/compile/css/Stylesheet.d.ts +++ b/src/@types/compiler/compile/css/Stylesheet.d.ts @@ -5,63 +5,73 @@ import { Ast, CssHashGetter } from '../../interfaces'; import Component from '../Component'; import { CssNode } from './interfaces'; declare class Rule { - selectors: Selector[]; - declarations: Declaration[]; - node: CssNode; - parent: Atrule; - constructor(node: CssNode, stylesheet: any, parent?: Atrule); - apply(node: Element): void; - is_used(dev: boolean): boolean; - minify(code: MagicString, _dev: boolean): void; - transform(code: MagicString, id: string, keyframes: Map, max_amount_class_specificity_increased: number): boolean; - validate(component: Component): void; - warn_on_unused_selector(handler: (selector: Selector) => void): void; - get_max_amount_class_specificity_increased(): number; + selectors: Selector[]; + declarations: Declaration[]; + node: CssNode; + parent: Atrule; + constructor(node: CssNode, stylesheet: any, parent?: Atrule); + apply(node: Element): void; + is_used(dev: boolean): boolean; + minify(code: MagicString, _dev: boolean): void; + transform(code: MagicString, id: string, keyframes: Map, max_amount_class_specificity_increased: number): boolean; + validate(component: Component): void; + warn_on_unused_selector(handler: (selector: Selector) => void): void; + get_max_amount_class_specificity_increased(): number; } declare class Declaration { - node: CssNode; - constructor(node: CssNode); - transform(code: MagicString, keyframes: Map): void; - minify(code: MagicString): void; + node: CssNode; + constructor(node: CssNode); + transform(code: MagicString, keyframes: Map): void; + minify(code: MagicString): void; } declare class Atrule { - node: CssNode; - children: Array; - declarations: Declaration[]; - constructor(node: CssNode); - apply(node: Element): void; - is_used(_dev: boolean): boolean; - minify(code: MagicString, dev: boolean): void; - transform(code: MagicString, id: string, keyframes: Map, max_amount_class_specificity_increased: number): void; - validate(component: Component): void; - warn_on_unused_selector(handler: (selector: Selector) => void): void; - get_max_amount_class_specificity_increased(): any; + node: CssNode; + children: Array; + declarations: Declaration[]; + constructor(node: CssNode); + apply(node: Element): void; + is_used(_dev: boolean): boolean; + minify(code: MagicString, dev: boolean): void; + transform(code: MagicString, id: string, keyframes: Map, max_amount_class_specificity_increased: number): void; + validate(component: Component): void; + warn_on_unused_selector(handler: (selector: Selector) => void): void; + get_max_amount_class_specificity_increased(): any; } export default class Stylesheet { + source: string; + ast: Ast; + filename: string; + dev: boolean; + has_styles: boolean; + id: string; + children: Array; + keyframes: Map; + nodes_with_css_class: Set; + constructor({ + source, + ast, + component_name, + filename, + dev, + get_css_hash, + }: { source: string; ast: Ast; - filename: string; + filename: string | undefined; + component_name: string | undefined; dev: boolean; - has_styles: boolean; - id: string; - children: Array; - keyframes: Map; - nodes_with_css_class: Set; - constructor({ source, ast, component_name, filename, dev, get_css_hash }: { - source: string; - ast: Ast; - filename: string | undefined; - component_name: string | undefined; - dev: boolean; - get_css_hash: CssHashGetter; - }); - apply(node: Element): void; - reify(): void; - render(file: string, should_transform_selectors: boolean): { - code: string; - map: import("magic-string").SourceMap; - }; - validate(component: Component): void; - warn_on_unused_selectors(component: Component): void; + get_css_hash: CssHashGetter; + }); + apply(node: Element): void; + reify(): void; + render( + file: string, + should_transform_selectors: boolean + ): { + code: string; + map: import('magic-string').SourceMap; + }; + validate(component: Component): void; + warn_on_unused_selectors(component: Component): void; } export {}; diff --git a/src/@types/compiler/compile/css/interfaces.d.ts b/src/@types/compiler/compile/css/interfaces.d.ts index 6bbee64160d2..c7530a6ddafb 100644 --- a/src/@types/compiler/compile/css/interfaces.d.ts +++ b/src/@types/compiler/compile/css/interfaces.d.ts @@ -1,6 +1,6 @@ export interface CssNode { - type: string; - start: number; - end: number; - [prop_name: string]: any; + type: string; + start: number; + end: number; + [prop_name: string]: any; } diff --git a/src/@types/compiler/compile/index.d.ts b/src/@types/compiler/compile/index.d.ts index 8394b3a5924f..23d1e98309f9 100644 --- a/src/@types/compiler/compile/index.d.ts +++ b/src/@types/compiler/compile/index.d.ts @@ -1,23 +1,26 @@ import { CompileOptions, Warning } from '../interfaces'; -export default function compile(source: string, options?: CompileOptions): { - js: any; - css: any; - ast: import("../interfaces").Ast; - warnings: Warning[]; - vars: { - name: string; - export_name: string; - injected: boolean; - module: boolean; - mutated: boolean; - reassigned: boolean; - referenced: boolean; - writable: boolean; - referenced_from_script: boolean; - }[]; - stats: { - timings: { - total: number; - }; +export default function compile( + source: string, + options?: CompileOptions +): { + js: any; + css: any; + ast: import('../interfaces').Ast; + warnings: Warning[]; + vars: { + name: string; + export_name: string; + injected: boolean; + module: boolean; + mutated: boolean; + reassigned: boolean; + referenced: boolean; + writable: boolean; + referenced_from_script: boolean; + }[]; + stats: { + timings: { + total: number; }; + }; }; diff --git a/src/@types/compiler/compile/nodes/Action.d.ts b/src/@types/compiler/compile/nodes/Action.d.ts index cfbf7e77467f..571682935931 100644 --- a/src/@types/compiler/compile/nodes/Action.d.ts +++ b/src/@types/compiler/compile/nodes/Action.d.ts @@ -4,10 +4,10 @@ import Component from '../Component'; import TemplateScope from './shared/TemplateScope'; import { Directive } from '../../interfaces'; export default class Action extends Node { - type: 'Action'; - name: string; - expression: Expression; - uses_context: boolean; - template_scope: TemplateScope; - constructor(component: Component, parent: Node, scope: TemplateScope, info: Directive); + type: 'Action'; + name: string; + expression: Expression; + uses_context: boolean; + template_scope: TemplateScope; + constructor(component: Component, parent: Node, scope: TemplateScope, info: Directive); } diff --git a/src/@types/compiler/compile/nodes/Animation.d.ts b/src/@types/compiler/compile/nodes/Animation.d.ts index 2bc43379cef4..5b4b75d83604 100644 --- a/src/@types/compiler/compile/nodes/Animation.d.ts +++ b/src/@types/compiler/compile/nodes/Animation.d.ts @@ -5,8 +5,8 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import Element from './Element'; export default class Animation extends Node { - type: 'Animation'; - name: string; - expression: Expression; - constructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode); + type: 'Animation'; + name: string; + expression: Expression; + constructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Attribute.d.ts b/src/@types/compiler/compile/nodes/Attribute.d.ts index aaa589ad394d..12e78962ca6e 100644 --- a/src/@types/compiler/compile/nodes/Attribute.d.ts +++ b/src/@types/compiler/compile/nodes/Attribute.d.ts @@ -6,25 +6,97 @@ import Expression from './shared/Expression'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class Attribute extends Node { - type: 'Attribute' | 'Spread'; - start: number; - end: number; - scope: TemplateScope; - component: Component; - parent: Element; - name: string; - is_spread: boolean; - is_true: boolean; - is_static: boolean; - expression?: Expression; - chunks: Array; - dependencies: Set; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); - get_dependencies(): string[]; - get_value(block: any): import("estree").Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier | { + type: 'Attribute' | 'Spread'; + start: number; + end: number; + scope: TemplateScope; + component: Component; + parent: Element; + name: string; + is_spread: boolean; + is_true: boolean; + is_static: boolean; + expression?: Expression; + chunks: Array; + dependencies: Set; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + get_dependencies(): string[]; + get_value( + block: any + ): + | import('estree').Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier + | { type: string; value: string; - }; - get_static_value(): string | true; - should_cache(): boolean; + }; + get_static_value(): string | true; + should_cache(): boolean; } diff --git a/src/@types/compiler/compile/nodes/AwaitBlock.d.ts b/src/@types/compiler/compile/nodes/AwaitBlock.d.ts index 0a5130787f05..4ebf8f073072 100644 --- a/src/@types/compiler/compile/nodes/AwaitBlock.d.ts +++ b/src/@types/compiler/compile/nodes/AwaitBlock.d.ts @@ -9,14 +9,14 @@ import { TemplateNode } from '../../interfaces'; import { Context } from './shared/Context'; import { Node as ESTreeNode } from 'estree'; export default class AwaitBlock extends Node { - type: 'AwaitBlock'; - expression: Expression; - then_contexts: Context[]; - catch_contexts: Context[]; - then_node: ESTreeNode | null; - catch_node: ESTreeNode | null; - pending: PendingBlock; - then: ThenBlock; - catch: CatchBlock; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'AwaitBlock'; + expression: Expression; + then_contexts: Context[]; + catch_contexts: Context[]; + then_node: ESTreeNode | null; + catch_node: ESTreeNode | null; + pending: PendingBlock; + then: ThenBlock; + catch: CatchBlock; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Binding.d.ts b/src/@types/compiler/compile/nodes/Binding.d.ts index 43769b2ac6f1..a8f7ab3b09e7 100644 --- a/src/@types/compiler/compile/nodes/Binding.d.ts +++ b/src/@types/compiler/compile/nodes/Binding.d.ts @@ -8,12 +8,12 @@ import Element from './Element'; import InlineComponent from './InlineComponent'; import Window from './Window'; export default class Binding extends Node { - type: 'Binding'; - name: string; - expression: Expression; - raw_expression: ESTreeNode; - is_contextual: boolean; - is_readonly: boolean; - constructor(component: Component, parent: Element | InlineComponent | Window, scope: TemplateScope, info: TemplateNode); - is_readonly_media_attribute(): boolean; + type: 'Binding'; + name: string; + expression: Expression; + raw_expression: ESTreeNode; + is_contextual: boolean; + is_readonly: boolean; + constructor(component: Component, parent: Element | InlineComponent | Window, scope: TemplateScope, info: TemplateNode); + is_readonly_media_attribute(): boolean; } diff --git a/src/@types/compiler/compile/nodes/Body.d.ts b/src/@types/compiler/compile/nodes/Body.d.ts index 8c024c13affc..19c61e65a051 100644 --- a/src/@types/compiler/compile/nodes/Body.d.ts +++ b/src/@types/compiler/compile/nodes/Body.d.ts @@ -4,7 +4,7 @@ import Component from '../Component'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class Body extends Node { - type: 'Body'; - handlers: EventHandler[]; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Body'; + handlers: EventHandler[]; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/CatchBlock.d.ts b/src/@types/compiler/compile/nodes/CatchBlock.d.ts index ec1e952ada10..cf7abad64261 100644 --- a/src/@types/compiler/compile/nodes/CatchBlock.d.ts +++ b/src/@types/compiler/compile/nodes/CatchBlock.d.ts @@ -4,7 +4,7 @@ import AwaitBlock from './AwaitBlock'; import Component from '../Component'; import { TemplateNode } from '../../interfaces'; export default class CatchBlock extends AbstractBlock { - type: 'CatchBlock'; - scope: TemplateScope; - constructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode); + type: 'CatchBlock'; + scope: TemplateScope; + constructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Class.d.ts b/src/@types/compiler/compile/nodes/Class.d.ts index d3365c738222..d2bd8f018631 100644 --- a/src/@types/compiler/compile/nodes/Class.d.ts +++ b/src/@types/compiler/compile/nodes/Class.d.ts @@ -4,8 +4,8 @@ import { TemplateNode } from '../../interfaces'; import TemplateScope from './shared/TemplateScope'; import Component from '../Component'; export default class Class extends Node { - type: 'Class'; - name: string; - expression: Expression; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Class'; + name: string; + expression: Expression; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Comment.d.ts b/src/@types/compiler/compile/nodes/Comment.d.ts index 6fb0cea27812..89e399e2e69d 100644 --- a/src/@types/compiler/compile/nodes/Comment.d.ts +++ b/src/@types/compiler/compile/nodes/Comment.d.ts @@ -3,8 +3,8 @@ import Component from '../Component'; import Node from './shared/Node'; import TemplateScope from './shared/TemplateScope'; export default class Comment extends Node { - type: 'Comment'; - data: string; - ignores: string[]; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Comment'; + data: string; + ignores: string[]; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/DebugTag.d.ts b/src/@types/compiler/compile/nodes/DebugTag.d.ts index 2241e7ace26a..95355425f45d 100644 --- a/src/@types/compiler/compile/nodes/DebugTag.d.ts +++ b/src/@types/compiler/compile/nodes/DebugTag.d.ts @@ -5,7 +5,7 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import { INode } from './interfaces'; export default class DebugTag extends Node { - type: 'DebugTag'; - expressions: Expression[]; - constructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode); + type: 'DebugTag'; + expressions: Expression[]; + constructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/DefaultSlotTemplate.d.ts b/src/@types/compiler/compile/nodes/DefaultSlotTemplate.d.ts index 77729362b6d2..2f99064c6ec7 100644 --- a/src/@types/compiler/compile/nodes/DefaultSlotTemplate.d.ts +++ b/src/@types/compiler/compile/nodes/DefaultSlotTemplate.d.ts @@ -4,10 +4,10 @@ import Node from './shared/Node'; import Let from './Let'; import { INode } from './interfaces'; export default class DefaultSlotTemplate extends Node { - type: 'SlotTemplate'; - scope: TemplateScope; - children: INode[]; - lets: Let[]; - slot_template_name: string; - constructor(component: Component, parent: INode, scope: TemplateScope, info: any, lets: Let[], children: INode[]); + type: 'SlotTemplate'; + scope: TemplateScope; + children: INode[]; + lets: Let[]; + slot_template_name: string; + constructor(component: Component, parent: INode, scope: TemplateScope, info: any, lets: Let[], children: INode[]); } diff --git a/src/@types/compiler/compile/nodes/EachBlock.d.ts b/src/@types/compiler/compile/nodes/EachBlock.d.ts index 81be9c074077..23480c839160 100644 --- a/src/@types/compiler/compile/nodes/EachBlock.d.ts +++ b/src/@types/compiler/compile/nodes/EachBlock.d.ts @@ -7,18 +7,18 @@ import { Node } from 'estree'; import Component from '../Component'; import { TemplateNode } from '../../interfaces'; export default class EachBlock extends AbstractBlock { - type: 'EachBlock'; - expression: Expression; - context_node: Node; - iterations: string; - index: string; - context: string; - key: Expression; - scope: TemplateScope; - contexts: Context[]; - has_animation: boolean; - has_binding: boolean; - has_index_binding: boolean; - else?: ElseBlock; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'EachBlock'; + expression: Expression; + context_node: Node; + iterations: string; + index: string; + context: string; + key: Expression; + scope: TemplateScope; + contexts: Context[]; + has_animation: boolean; + has_binding: boolean; + has_index_binding: boolean; + else?: ElseBlock; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Element.d.ts b/src/@types/compiler/compile/nodes/Element.d.ts index 016ebe2c1f5e..0b519af70599 100644 --- a/src/@types/compiler/compile/nodes/Element.d.ts +++ b/src/@types/compiler/compile/nodes/Element.d.ts @@ -11,31 +11,31 @@ import TemplateScope from './shared/TemplateScope'; import { INode } from './interfaces'; import Component from '../Component'; export default class Element extends Node { - type: 'Element'; - name: string; - scope: TemplateScope; - attributes: Attribute[]; - actions: Action[]; - bindings: Binding[]; - classes: Class[]; - handlers: EventHandler[]; - lets: Let[]; - intro?: Transition; - outro?: Transition; - animation?: Animation; - children: INode[]; - namespace: string; - needs_manual_style_scoping: boolean; - constructor(component: Component, parent: Node, scope: TemplateScope, info: any); - validate(): void; - validate_attributes(): void; - validate_attributes_a11y(): void; - validate_special_cases(): void; - validate_bindings_foreign(): void; - validate_bindings(): void; - validate_content(): void; - validate_event_handlers(): void; - is_media_node(): boolean; - add_css_class(): void; - get slot_template_name(): string; + type: 'Element'; + name: string; + scope: TemplateScope; + attributes: Attribute[]; + actions: Action[]; + bindings: Binding[]; + classes: Class[]; + handlers: EventHandler[]; + lets: Let[]; + intro?: Transition; + outro?: Transition; + animation?: Animation; + children: INode[]; + namespace: string; + needs_manual_style_scoping: boolean; + constructor(component: Component, parent: Node, scope: TemplateScope, info: any); + validate(): void; + validate_attributes(): void; + validate_attributes_a11y(): void; + validate_special_cases(): void; + validate_bindings_foreign(): void; + validate_bindings(): void; + validate_content(): void; + validate_event_handlers(): void; + is_media_node(): boolean; + add_css_class(): void; + get slot_template_name(): string; } diff --git a/src/@types/compiler/compile/nodes/ElseBlock.d.ts b/src/@types/compiler/compile/nodes/ElseBlock.d.ts index bc371e0e9aef..1c1cc1406c79 100644 --- a/src/@types/compiler/compile/nodes/ElseBlock.d.ts +++ b/src/@types/compiler/compile/nodes/ElseBlock.d.ts @@ -4,6 +4,6 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import Node from './shared/Node'; export default class ElseBlock extends AbstractBlock { - type: 'ElseBlock'; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'ElseBlock'; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/EventHandler.d.ts b/src/@types/compiler/compile/nodes/EventHandler.d.ts index d7c58de00675..03d1575bfbdf 100644 --- a/src/@types/compiler/compile/nodes/EventHandler.d.ts +++ b/src/@types/compiler/compile/nodes/EventHandler.d.ts @@ -5,13 +5,13 @@ import { Identifier } from 'estree'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class EventHandler extends Node { - type: 'EventHandler'; - name: string; - modifiers: Set; - expression: Expression; - handler_name: Identifier; - uses_context: boolean; - can_make_passive: boolean; - constructor(component: Component, parent: Node, template_scope: TemplateScope, info: TemplateNode); - get reassigned(): boolean; + type: 'EventHandler'; + name: string; + modifiers: Set; + expression: Expression; + handler_name: Identifier; + uses_context: boolean; + can_make_passive: boolean; + constructor(component: Component, parent: Node, template_scope: TemplateScope, info: TemplateNode); + get reassigned(): boolean; } diff --git a/src/@types/compiler/compile/nodes/Fragment.d.ts b/src/@types/compiler/compile/nodes/Fragment.d.ts index a382218d8070..a491da6a2c93 100644 --- a/src/@types/compiler/compile/nodes/Fragment.d.ts +++ b/src/@types/compiler/compile/nodes/Fragment.d.ts @@ -5,9 +5,9 @@ import TemplateScope from './shared/TemplateScope'; import { INode } from './interfaces'; import { TemplateNode } from '../../interfaces'; export default class Fragment extends Node { - type: 'Fragment'; - block: Block; - children: INode[]; - scope: TemplateScope; - constructor(component: Component, info: TemplateNode); + type: 'Fragment'; + block: Block; + children: INode[]; + scope: TemplateScope; + constructor(component: Component, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Head.d.ts b/src/@types/compiler/compile/nodes/Head.d.ts index 736bbc4a9596..ab23220879b5 100644 --- a/src/@types/compiler/compile/nodes/Head.d.ts +++ b/src/@types/compiler/compile/nodes/Head.d.ts @@ -3,8 +3,8 @@ import Component from '../Component'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class Head extends Node { - type: 'Head'; - children: any[]; - id: string; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Head'; + children: any[]; + id: string; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/IfBlock.d.ts b/src/@types/compiler/compile/nodes/IfBlock.d.ts index 14418cb0734a..02049ee87921 100644 --- a/src/@types/compiler/compile/nodes/IfBlock.d.ts +++ b/src/@types/compiler/compile/nodes/IfBlock.d.ts @@ -6,8 +6,8 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import Node from './shared/Node'; export default class IfBlock extends AbstractBlock { - type: 'IfBlock'; - expression: Expression; - else: ElseBlock; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'IfBlock'; + expression: Expression; + else: ElseBlock; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/InlineComponent.d.ts b/src/@types/compiler/compile/nodes/InlineComponent.d.ts index c555ed124eff..7b01a7a7f656 100644 --- a/src/@types/compiler/compile/nodes/InlineComponent.d.ts +++ b/src/@types/compiler/compile/nodes/InlineComponent.d.ts @@ -9,15 +9,15 @@ import TemplateScope from './shared/TemplateScope'; import { INode } from './interfaces'; import { TemplateNode } from '../../interfaces'; export default class InlineComponent extends Node { - type: 'InlineComponent'; - name: string; - expression: Expression; - attributes: Attribute[]; - bindings: Binding[]; - handlers: EventHandler[]; - lets: Let[]; - children: INode[]; - scope: TemplateScope; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); - get slot_template_name(): string; + type: 'InlineComponent'; + name: string; + expression: Expression; + attributes: Attribute[]; + bindings: Binding[]; + handlers: EventHandler[]; + lets: Let[]; + children: INode[]; + scope: TemplateScope; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + get slot_template_name(): string; } diff --git a/src/@types/compiler/compile/nodes/KeyBlock.d.ts b/src/@types/compiler/compile/nodes/KeyBlock.d.ts index 38c62be80f68..9c6df46b8496 100644 --- a/src/@types/compiler/compile/nodes/KeyBlock.d.ts +++ b/src/@types/compiler/compile/nodes/KeyBlock.d.ts @@ -5,7 +5,7 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import Node from './shared/Node'; export default class KeyBlock extends AbstractBlock { - type: 'KeyBlock'; - expression: Expression; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'KeyBlock'; + expression: Expression; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Let.d.ts b/src/@types/compiler/compile/nodes/Let.d.ts index 6fb24b118bbf..43065e0c66d1 100644 --- a/src/@types/compiler/compile/nodes/Let.d.ts +++ b/src/@types/compiler/compile/nodes/Let.d.ts @@ -4,9 +4,9 @@ import { Identifier } from 'estree'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class Let extends Node { - type: 'Let'; - name: Identifier; - value: Identifier; - names: string[]; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Let'; + name: Identifier; + value: Identifier; + names: string[]; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/MustacheTag.d.ts b/src/@types/compiler/compile/nodes/MustacheTag.d.ts index f659e3d44339..e1a5dc96443f 100644 --- a/src/@types/compiler/compile/nodes/MustacheTag.d.ts +++ b/src/@types/compiler/compile/nodes/MustacheTag.d.ts @@ -1,4 +1,4 @@ import Tag from './shared/Tag'; export default class MustacheTag extends Tag { - type: 'MustacheTag'; + type: 'MustacheTag'; } diff --git a/src/@types/compiler/compile/nodes/Options.d.ts b/src/@types/compiler/compile/nodes/Options.d.ts index d114122fb508..a61fac82c1c4 100644 --- a/src/@types/compiler/compile/nodes/Options.d.ts +++ b/src/@types/compiler/compile/nodes/Options.d.ts @@ -1,4 +1,4 @@ import Node from './shared/Node'; export default class Options extends Node { - type: 'Options'; + type: 'Options'; } diff --git a/src/@types/compiler/compile/nodes/PendingBlock.d.ts b/src/@types/compiler/compile/nodes/PendingBlock.d.ts index 3b3ffa36dae2..b2cd09490799 100644 --- a/src/@types/compiler/compile/nodes/PendingBlock.d.ts +++ b/src/@types/compiler/compile/nodes/PendingBlock.d.ts @@ -4,6 +4,6 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import Node from './shared/Node'; export default class PendingBlock extends AbstractBlock { - type: 'PendingBlock'; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'PendingBlock'; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/RawMustacheTag.d.ts b/src/@types/compiler/compile/nodes/RawMustacheTag.d.ts index 98b279d86b1d..a3c624b502c1 100644 --- a/src/@types/compiler/compile/nodes/RawMustacheTag.d.ts +++ b/src/@types/compiler/compile/nodes/RawMustacheTag.d.ts @@ -1,4 +1,4 @@ import Tag from './shared/Tag'; export default class RawMustacheTag extends Tag { - type: 'RawMustacheTag'; + type: 'RawMustacheTag'; } diff --git a/src/@types/compiler/compile/nodes/Slot.d.ts b/src/@types/compiler/compile/nodes/Slot.d.ts index b27476b3c425..fb69f91de5bf 100644 --- a/src/@types/compiler/compile/nodes/Slot.d.ts +++ b/src/@types/compiler/compile/nodes/Slot.d.ts @@ -5,10 +5,10 @@ import TemplateScope from './shared/TemplateScope'; import { INode } from './interfaces'; import { TemplateNode } from '../../interfaces'; export default class Slot extends Element { - type: 'Element'; - name: string; - children: INode[]; - slot_name: string; - values: Map; - constructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode); + type: 'Element'; + name: string; + children: INode[]; + slot_name: string; + values: Map; + constructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/SlotTemplate.d.ts b/src/@types/compiler/compile/nodes/SlotTemplate.d.ts index 4722632d2f47..65f649a44b6a 100644 --- a/src/@types/compiler/compile/nodes/SlotTemplate.d.ts +++ b/src/@types/compiler/compile/nodes/SlotTemplate.d.ts @@ -5,12 +5,12 @@ import Let from './Let'; import Attribute from './Attribute'; import { INode } from './interfaces'; export default class SlotTemplate extends Node { - type: 'SlotTemplate'; - scope: TemplateScope; - children: INode[]; - lets: Let[]; - slot_attribute: Attribute; - slot_template_name: string; - constructor(component: Component, parent: INode, scope: TemplateScope, info: any); - validate_slot_template_placement(): void; + type: 'SlotTemplate'; + scope: TemplateScope; + children: INode[]; + lets: Let[]; + slot_attribute: Attribute; + slot_template_name: string; + constructor(component: Component, parent: INode, scope: TemplateScope, info: any); + validate_slot_template_placement(): void; } diff --git a/src/@types/compiler/compile/nodes/Text.d.ts b/src/@types/compiler/compile/nodes/Text.d.ts index e0f4570d09fb..ab1d940c576a 100644 --- a/src/@types/compiler/compile/nodes/Text.d.ts +++ b/src/@types/compiler/compile/nodes/Text.d.ts @@ -4,9 +4,9 @@ import TemplateScope from './shared/TemplateScope'; import { INode } from './interfaces'; import { TemplateNode } from '../../interfaces'; export default class Text extends Node { - type: 'Text'; - data: string; - synthetic: boolean; - constructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode); - should_skip(): any; + type: 'Text'; + data: string; + synthetic: boolean; + constructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode); + should_skip(): any; } diff --git a/src/@types/compiler/compile/nodes/ThenBlock.d.ts b/src/@types/compiler/compile/nodes/ThenBlock.d.ts index 2a0a4c379787..d6be4438ff9d 100644 --- a/src/@types/compiler/compile/nodes/ThenBlock.d.ts +++ b/src/@types/compiler/compile/nodes/ThenBlock.d.ts @@ -4,7 +4,7 @@ import AwaitBlock from './AwaitBlock'; import Component from '../Component'; import { TemplateNode } from '../../interfaces'; export default class ThenBlock extends AbstractBlock { - type: 'ThenBlock'; - scope: TemplateScope; - constructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode); + type: 'ThenBlock'; + scope: TemplateScope; + constructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Title.d.ts b/src/@types/compiler/compile/nodes/Title.d.ts index 8288a0583af6..092629f1561d 100644 --- a/src/@types/compiler/compile/nodes/Title.d.ts +++ b/src/@types/compiler/compile/nodes/Title.d.ts @@ -4,8 +4,8 @@ import Component from '../Component'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class Title extends Node { - type: 'Title'; - children: Children; - should_cache: boolean; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Title'; + children: Children; + should_cache: boolean; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Transition.d.ts b/src/@types/compiler/compile/nodes/Transition.d.ts index 7ce9dc7b088d..9415609dd368 100644 --- a/src/@types/compiler/compile/nodes/Transition.d.ts +++ b/src/@types/compiler/compile/nodes/Transition.d.ts @@ -5,10 +5,10 @@ import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; import Element from './Element'; export default class Transition extends Node { - type: 'Transition'; - name: string; - directive: string; - expression: Expression; - is_local: boolean; - constructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode); + type: 'Transition'; + name: string; + directive: string; + expression: Expression; + is_local: boolean; + constructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/Window.d.ts b/src/@types/compiler/compile/nodes/Window.d.ts index 183a8cc13f9c..dfe573caccea 100644 --- a/src/@types/compiler/compile/nodes/Window.d.ts +++ b/src/@types/compiler/compile/nodes/Window.d.ts @@ -6,9 +6,9 @@ import Component from '../Component'; import TemplateScope from './shared/TemplateScope'; import { TemplateNode } from '../../interfaces'; export default class Window extends Node { - type: 'Window'; - handlers: EventHandler[]; - bindings: Binding[]; - actions: Action[]; - constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); + type: 'Window'; + handlers: EventHandler[]; + bindings: Binding[]; + actions: Action[]; + constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode); } diff --git a/src/@types/compiler/compile/nodes/interfaces.d.ts b/src/@types/compiler/compile/nodes/interfaces.d.ts index 0995951a35d5..51d8145e7dc1 100644 --- a/src/@types/compiler/compile/nodes/interfaces.d.ts +++ b/src/@types/compiler/compile/nodes/interfaces.d.ts @@ -31,4 +31,37 @@ import ThenBlock from './ThenBlock'; import Title from './Title'; import Transition from './Transition'; import Window from './Window'; -export declare type INode = Action | Animation | Attribute | AwaitBlock | Binding | Body | CatchBlock | Class | Comment | DebugTag | EachBlock | Element | ElseBlock | EventHandler | Fragment | Head | IfBlock | InlineComponent | KeyBlock | Let | MustacheTag | Options | PendingBlock | RawMustacheTag | Slot | SlotTemplate | DefaultSlotTemplate | Tag | Text | ThenBlock | Title | Transition | Window; +export declare type INode = + | Action + | Animation + | Attribute + | AwaitBlock + | Binding + | Body + | CatchBlock + | Class + | Comment + | DebugTag + | EachBlock + | Element + | ElseBlock + | EventHandler + | Fragment + | Head + | IfBlock + | InlineComponent + | KeyBlock + | Let + | MustacheTag + | Options + | PendingBlock + | RawMustacheTag + | Slot + | SlotTemplate + | DefaultSlotTemplate + | Tag + | Text + | ThenBlock + | Title + | Transition + | Window; diff --git a/src/@types/compiler/compile/nodes/shared/AbstractBlock.d.ts b/src/@types/compiler/compile/nodes/shared/AbstractBlock.d.ts index 9dea594b8084..6379acaf3e43 100644 --- a/src/@types/compiler/compile/nodes/shared/AbstractBlock.d.ts +++ b/src/@types/compiler/compile/nodes/shared/AbstractBlock.d.ts @@ -3,8 +3,8 @@ import Component from '../../Component'; import Node from './Node'; import { INode } from '../interfaces'; export default class AbstractBlock extends Node { - block: Block; - children: INode[]; - constructor(component: Component, parent: any, scope: any, info: any); - warn_if_empty_block(): void; + block: Block; + children: INode[]; + constructor(component: Component, parent: any, scope: any, info: any); + warn_if_empty_block(): void; } diff --git a/src/@types/compiler/compile/nodes/shared/Context.d.ts b/src/@types/compiler/compile/nodes/shared/Context.d.ts index 5c401a7f4390..aca6133a911f 100644 --- a/src/@types/compiler/compile/nodes/shared/Context.d.ts +++ b/src/@types/compiler/compile/nodes/shared/Context.d.ts @@ -1,8 +1,8 @@ import { Node, Identifier } from 'estree'; export interface Context { - key: Identifier; - name?: string; - modifier: (node: Node) => Node; - default_modifier: (node: Node, to_ctx: (name: string) => Node) => Node; + key: Identifier; + name?: string; + modifier: (node: Node) => Node; + default_modifier: (node: Node, to_ctx: (name: string) => Node) => Node; } export declare function unpack_destructuring(contexts: Context[], node: Node, modifier?: Context['modifier'], default_modifier?: Context['default_modifier']): void; diff --git a/src/@types/compiler/compile/nodes/shared/Expression.d.ts b/src/@types/compiler/compile/nodes/shared/Expression.d.ts index 6764bfc2c56b..b9b24f6eb062 100644 --- a/src/@types/compiler/compile/nodes/shared/Expression.d.ts +++ b/src/@types/compiler/compile/nodes/shared/Expression.d.ts @@ -6,21 +6,21 @@ import { Node } from 'estree'; import { INode } from '../interfaces'; declare type Owner = INode; export default class Expression { - type: 'Expression'; - component: Component; - owner: Owner; - node: Node; - references: Set; - dependencies: Set; - contextual_dependencies: Set; - template_scope: TemplateScope; - scope: Scope; - scope_map: WeakMap; - declarations: Array<(Node | Node[])>; - uses_context: boolean; - manipulated: Node; - constructor(component: Component, owner: Owner, template_scope: TemplateScope, info: Node, lazy?: boolean); - dynamic_dependencies(): string[]; - manipulate(block?: Block): Node; + type: 'Expression'; + component: Component; + owner: Owner; + node: Node; + references: Set; + dependencies: Set; + contextual_dependencies: Set; + template_scope: TemplateScope; + scope: Scope; + scope_map: WeakMap; + declarations: Array; + uses_context: boolean; + manipulated: Node; + constructor(component: Component, owner: Owner, template_scope: TemplateScope, info: Node, lazy?: boolean); + dynamic_dependencies(): string[]; + manipulate(block?: Block): Node; } export {}; diff --git a/src/@types/compiler/compile/nodes/shared/Node.d.ts b/src/@types/compiler/compile/nodes/shared/Node.d.ts index 7830094418ab..0c2b945ff7ea 100644 --- a/src/@types/compiler/compile/nodes/shared/Node.d.ts +++ b/src/@types/compiler/compile/nodes/shared/Node.d.ts @@ -3,19 +3,19 @@ import Component from '../../Component'; import { INode } from '../interfaces'; import { TemplateNode } from '../../../interfaces'; export default class Node { - readonly start: number; - readonly end: number; - readonly component: Component; - readonly parent: INode; - readonly type: string; - prev?: INode; - next?: INode; - can_use_innerhtml: boolean; - var: string; - attributes: Attribute[]; - constructor(component: Component, parent: Node, _scope: any, info: TemplateNode); - cannot_use_innerhtml(): void; - find_nearest(selector: RegExp): any; - get_static_attribute_value(name: string): string | true; - has_ancestor(type: string): any; + readonly start: number; + readonly end: number; + readonly component: Component; + readonly parent: INode; + readonly type: string; + prev?: INode; + next?: INode; + can_use_innerhtml: boolean; + var: string; + attributes: Attribute[]; + constructor(component: Component, parent: Node, _scope: any, info: TemplateNode); + cannot_use_innerhtml(): void; + find_nearest(selector: RegExp): any; + get_static_attribute_value(name: string): string | true; + has_ancestor(type: string): any; } diff --git a/src/@types/compiler/compile/nodes/shared/Tag.d.ts b/src/@types/compiler/compile/nodes/shared/Tag.d.ts index 8c5db1895893..5dd9ecf2d805 100644 --- a/src/@types/compiler/compile/nodes/shared/Tag.d.ts +++ b/src/@types/compiler/compile/nodes/shared/Tag.d.ts @@ -1,8 +1,8 @@ import Node from './Node'; import Expression from './Expression'; export default class Tag extends Node { - type: 'MustacheTag' | 'RawMustacheTag'; - expression: Expression; - should_cache: boolean; - constructor(component: any, parent: any, scope: any, info: any); + type: 'MustacheTag' | 'RawMustacheTag'; + expression: Expression; + should_cache: boolean; + constructor(component: any, parent: any, scope: any, info: any); } diff --git a/src/@types/compiler/compile/nodes/shared/TemplateScope.d.ts b/src/@types/compiler/compile/nodes/shared/TemplateScope.d.ts index 3cfd39821af1..e1bb8df4cded 100644 --- a/src/@types/compiler/compile/nodes/shared/TemplateScope.d.ts +++ b/src/@types/compiler/compile/nodes/shared/TemplateScope.d.ts @@ -6,16 +6,16 @@ import Element from '../Element'; import SlotTemplate from '../SlotTemplate'; declare type NodeWithScope = EachBlock | ThenBlock | CatchBlock | InlineComponent | Element | SlotTemplate; export default class TemplateScope { - names: Set; - dependencies_for_name: Map>; - owners: Map; - parent?: TemplateScope; - constructor(parent?: TemplateScope); - add(name: any, dependencies: Set, owner: any): this; - child(): TemplateScope; - is_top_level(name: string): any; - get_owner(name: string): NodeWithScope; - is_let(name: string): boolean; - is_await(name: string): boolean; + names: Set; + dependencies_for_name: Map>; + owners: Map; + parent?: TemplateScope; + constructor(parent?: TemplateScope); + add(name: any, dependencies: Set, owner: any): this; + child(): TemplateScope; + is_top_level(name: string): any; + get_owner(name: string): NodeWithScope; + is_let(name: string): boolean; + is_await(name: string): boolean; } export {}; diff --git a/src/@types/compiler/compile/nodes/shared/map_children.d.ts b/src/@types/compiler/compile/nodes/shared/map_children.d.ts index 8c4dfb94968f..ef3274a4836d 100644 --- a/src/@types/compiler/compile/nodes/shared/map_children.d.ts +++ b/src/@types/compiler/compile/nodes/shared/map_children.d.ts @@ -17,4 +17,27 @@ import Title from '../Title'; import Window from '../Window'; import { TemplateNode } from '../../../interfaces'; export declare type Children = ReturnType; -export default function map_children(component: any, parent: any, scope: any, children: TemplateNode[]): (AwaitBlock | Body | Comment | DebugTag | EachBlock | Element | Head | IfBlock | InlineComponent | KeyBlock | MustacheTag | Options | RawMustacheTag | SlotTemplate | Text | Title | Window)[]; +export default function map_children( + component: any, + parent: any, + scope: any, + children: TemplateNode[] +): ( + | AwaitBlock + | Body + | Comment + | DebugTag + | EachBlock + | Element + | Head + | IfBlock + | InlineComponent + | KeyBlock + | MustacheTag + | Options + | RawMustacheTag + | SlotTemplate + | Text + | Title + | Window +)[]; diff --git a/src/@types/compiler/compile/render_dom/Block.d.ts b/src/@types/compiler/compile/render_dom/Block.d.ts index 9a272f90ca28..8cbd2f1e16d2 100644 --- a/src/@types/compiler/compile/render_dom/Block.d.ts +++ b/src/@types/compiler/compile/render_dom/Block.d.ts @@ -2,77 +2,80 @@ import Renderer from './Renderer'; import Wrapper from './wrappers/shared/Wrapper'; import { Node, Identifier } from 'estree'; export interface Bindings { - object: Identifier; - property: Identifier; - snippet: Node; - store: string; - modifier: (node: Node) => Node; + object: Identifier; + property: Identifier; + snippet: Node; + store: string; + modifier: (node: Node) => Node; } export interface BlockOptions { - parent?: Block; - name: Identifier; - type: string; - renderer?: Renderer; - comment?: string; - key?: Identifier; - bindings?: Map; - dependencies?: Set; + parent?: Block; + name: Identifier; + type: string; + renderer?: Renderer; + comment?: string; + key?: Identifier; + bindings?: Map; + dependencies?: Set; } export default class Block { - parent?: Block; - renderer: Renderer; - name: Identifier; - type: string; - comment?: string; - wrappers: Wrapper[]; - key: Identifier; - first: Identifier; - dependencies: Set; - bindings: Map; - binding_group_initialised: Set; - chunks: { - declarations: Array; - init: Array; - create: Array; - claim: Array; - hydrate: Array; - mount: Array; - measure: Array; - fix: Array; - animate: Array; - intro: Array; - update: Array; - outro: Array; - destroy: Array; - }; - event_listeners: Node[]; - maintain_context: boolean; - has_animation: boolean; - has_intros: boolean; - has_outros: boolean; - has_intro_method: boolean; - has_outro_method: boolean; - outros: number; - aliases: Map; - variables: Map; - get_unique_name: (name: string) => Identifier; - has_update_method: boolean; - autofocus: string; - constructor(options: BlockOptions); - assign_variable_names(): void; - add_dependencies(dependencies: Set): void; - add_element(id: Identifier, render_statement: Node, claim_statement: Node, parent_node: Node, no_detach?: boolean): void; - add_intro(local?: boolean): void; - add_outro(local?: boolean): void; - add_animation(): void; - add_variable(id: Identifier, init?: Node): void; - alias(name: string): Identifier; - child(options: BlockOptions): Block; - get_contents(key?: any): Node[]; - has_content(): boolean; - render(): Node[]; - render_listeners(chunk?: string): void; + parent?: Block; + renderer: Renderer; + name: Identifier; + type: string; + comment?: string; + wrappers: Wrapper[]; + key: Identifier; + first: Identifier; + dependencies: Set; + bindings: Map; + binding_group_initialised: Set; + chunks: { + declarations: Array; + init: Array; + create: Array; + claim: Array; + hydrate: Array; + mount: Array; + measure: Array; + fix: Array; + animate: Array; + intro: Array; + update: Array; + outro: Array; + destroy: Array; + }; + event_listeners: Node[]; + maintain_context: boolean; + has_animation: boolean; + has_intros: boolean; + has_outros: boolean; + has_intro_method: boolean; + has_outro_method: boolean; + outros: number; + aliases: Map; + variables: Map< + string, + { + id: Identifier; + init?: Node; + } + >; + get_unique_name: (name: string) => Identifier; + has_update_method: boolean; + autofocus: string; + constructor(options: BlockOptions); + assign_variable_names(): void; + add_dependencies(dependencies: Set): void; + add_element(id: Identifier, render_statement: Node, claim_statement: Node, parent_node: Node, no_detach?: boolean): void; + add_intro(local?: boolean): void; + add_outro(local?: boolean): void; + add_animation(): void; + add_variable(id: Identifier, init?: Node): void; + alias(name: string): Identifier; + child(options: BlockOptions): Block; + get_contents(key?: any): Node[]; + has_content(): boolean; + render(): Node[]; + render_listeners(chunk?: string): void; } diff --git a/src/@types/compiler/compile/render_dom/Renderer.d.ts b/src/@types/compiler/compile/render_dom/Renderer.d.ts index ece1e715f364..e56f323429ea 100644 --- a/src/@types/compiler/compile/render_dom/Renderer.d.ts +++ b/src/@types/compiler/compile/render_dom/Renderer.d.ts @@ -4,42 +4,47 @@ import Component from '../Component'; import FragmentWrapper from './wrappers/Fragment'; import { Node, Identifier, MemberExpression, Literal, Expression } from 'estree'; interface ContextMember { - name: string; - index: Literal; - is_contextual: boolean; - is_non_contextual: boolean; - variable: Var; - priority: number; + name: string; + index: Literal; + is_contextual: boolean; + is_non_contextual: boolean; + variable: Var; + priority: number; } export default class Renderer { - component: Component; - options: CompileOptions; - context: ContextMember[]; - initial_context: ContextMember[]; - context_lookup: Map; - context_overflow: boolean; - blocks: Array; - readonly: Set; - meta_bindings: Array; - binding_groups: Map Node; - is_context: boolean; - contexts: string[]; - index: number; - keypath: string; - }>; - block: Block; - fragment: FragmentWrapper; - file_var: Identifier; - locate: (c: number) => { - line: number; - column: number; - }; - constructor(component: Component, options: CompileOptions); - add_to_context(name: string, contextual?: boolean): ContextMember; - invalidate(name: string, value?: any, main_execution_context?: boolean): any; - dirty(names: string[], is_reactive_declaration?: boolean): Expression; - reference(node: string | Identifier | MemberExpression): any; - remove_block(block: Block | Node | Node[]): void; + component: Component; + options: CompileOptions; + context: ContextMember[]; + initial_context: ContextMember[]; + context_lookup: Map; + context_overflow: boolean; + blocks: Array; + readonly: Set; + meta_bindings: Array; + binding_groups: Map< + string, + { + binding_group: (to_reference?: boolean) => Node; + is_context: boolean; + contexts: string[]; + index: number; + keypath: string; + } + >; + block: Block; + fragment: FragmentWrapper; + file_var: Identifier; + locate: ( + c: number + ) => { + line: number; + column: number; + }; + constructor(component: Component, options: CompileOptions); + add_to_context(name: string, contextual?: boolean): ContextMember; + invalidate(name: string, value?: any, main_execution_context?: boolean): any; + dirty(names: string[], is_reactive_declaration?: boolean): Expression; + reference(node: string | Identifier | MemberExpression): any; + remove_block(block: Block | Node | Node[]): void; } export {}; diff --git a/src/@types/compiler/compile/render_dom/index.d.ts b/src/@types/compiler/compile/render_dom/index.d.ts index 406561f4b458..6fd9ab63edfe 100644 --- a/src/@types/compiler/compile/render_dom/index.d.ts +++ b/src/@types/compiler/compile/render_dom/index.d.ts @@ -1,7 +1,10 @@ import Component from '../Component'; import { CompileOptions, CssResult } from '../../interfaces'; import { Node } from 'estree'; -export default function dom(component: Component, options: CompileOptions): { - js: Node[]; - css: CssResult; +export default function dom( + component: Component, + options: CompileOptions +): { + js: Node[]; + css: CssResult; }; diff --git a/src/@types/compiler/compile/render_dom/wrappers/AwaitBlock.d.ts b/src/@types/compiler/compile/render_dom/wrappers/AwaitBlock.d.ts index 28ffd28d0c0e..55e41bbc932f 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/AwaitBlock.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/AwaitBlock.d.ts @@ -10,29 +10,37 @@ import { Context } from '../../nodes/shared/Context'; import { Identifier, Literal, Node } from 'estree'; declare type Status = 'pending' | 'then' | 'catch'; declare class AwaitBlockBranch extends Wrapper { - parent: AwaitBlockWrapper; - node: PendingBlock | ThenBlock | CatchBlock; - block: Block; - fragment: FragmentWrapper; - is_dynamic: boolean; - var: any; - status: Status; - value: string; - value_index: Literal; - value_contexts: Context[]; - is_destructured: boolean; - constructor(status: Status, renderer: Renderer, block: Block, parent: AwaitBlockWrapper, node: PendingBlock | ThenBlock | CatchBlock, strip_whitespace: boolean, next_sibling: Wrapper); - add_context(node: Node | null, contexts: Context[]): void; - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - render_destructure(): void; + parent: AwaitBlockWrapper; + node: PendingBlock | ThenBlock | CatchBlock; + block: Block; + fragment: FragmentWrapper; + is_dynamic: boolean; + var: any; + status: Status; + value: string; + value_index: Literal; + value_contexts: Context[]; + is_destructured: boolean; + constructor( + status: Status, + renderer: Renderer, + block: Block, + parent: AwaitBlockWrapper, + node: PendingBlock | ThenBlock | CatchBlock, + strip_whitespace: boolean, + next_sibling: Wrapper + ); + add_context(node: Node | null, contexts: Context[]): void; + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + render_destructure(): void; } export default class AwaitBlockWrapper extends Wrapper { - node: AwaitBlock; - pending: AwaitBlockBranch; - then: AwaitBlockBranch; - catch: AwaitBlockBranch; - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: AwaitBlock, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + node: AwaitBlock; + pending: AwaitBlockBranch; + then: AwaitBlockBranch; + catch: AwaitBlockBranch; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: AwaitBlock, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; } export {}; diff --git a/src/@types/compiler/compile/render_dom/wrappers/Body.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Body.d.ts index e00cfdf071d5..2846fc10e13d 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Body.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Body.d.ts @@ -6,8 +6,8 @@ import EventHandler from './Element/EventHandler'; import { TemplateNode } from '../../../interfaces'; import Renderer from '../Renderer'; export default class BodyWrapper extends Wrapper { - node: Body; - handlers: EventHandler[]; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode); - render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; + node: Body; + handlers: EventHandler[]; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode); + render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/DebugTag.d.ts b/src/@types/compiler/compile/render_dom/wrappers/DebugTag.d.ts index bf68ea96295d..24a672f7987f 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/DebugTag.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/DebugTag.d.ts @@ -4,7 +4,7 @@ import Block from '../Block'; import DebugTag from '../../nodes/DebugTag'; import { Identifier } from 'estree'; export default class DebugTagWrapper extends Wrapper { - node: DebugTag; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: DebugTag, _strip_whitespace: boolean, _next_sibling: Wrapper); - render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; + node: DebugTag; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: DebugTag, _strip_whitespace: boolean, _next_sibling: Wrapper); + render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/EachBlock.d.ts b/src/@types/compiler/compile/render_dom/wrappers/EachBlock.d.ts index 573b7c1a5530..275b9b443c3f 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/EachBlock.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/EachBlock.d.ts @@ -6,51 +6,68 @@ import FragmentWrapper from './Fragment'; import ElseBlock from '../../nodes/ElseBlock'; import { Identifier, Node } from 'estree'; export declare class ElseBlockWrapper extends Wrapper { - node: ElseBlock; - block: Block; - fragment: FragmentWrapper; - is_dynamic: boolean; - var: any; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: ElseBlock, strip_whitespace: boolean, next_sibling: Wrapper); + node: ElseBlock; + block: Block; + fragment: FragmentWrapper; + is_dynamic: boolean; + var: any; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: ElseBlock, strip_whitespace: boolean, next_sibling: Wrapper); } export default class EachBlockWrapper extends Wrapper { + block: Block; + node: EachBlock; + fragment: FragmentWrapper; + else?: ElseBlockWrapper; + vars: { + create_each_block: Identifier; + each_block_value: Identifier; + get_each_context: Identifier; + iterations: Identifier; + fixed_length: number; + data_length: Node | number; + view_length: Node | number; + }; + context_props: Array; + index_name: Identifier; + updates: Array; + dependencies: Set; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: EachBlock, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + render_keyed({ + block, + parent_node, + parent_nodes, + snippet, + initial_anchor_node, + initial_mount_node, + update_anchor_node, + update_mount_node, + }: { + block: Block; + parent_node: Identifier; + parent_nodes: Identifier; + snippet: Node; + initial_anchor_node: Identifier; + initial_mount_node: Identifier; + update_anchor_node: Identifier; + update_mount_node: Identifier; + }): void; + render_unkeyed({ + block, + parent_nodes, + snippet, + initial_anchor_node, + initial_mount_node, + update_anchor_node, + update_mount_node, + }: { block: Block; - node: EachBlock; - fragment: FragmentWrapper; - else?: ElseBlockWrapper; - vars: { - create_each_block: Identifier; - each_block_value: Identifier; - get_each_context: Identifier; - iterations: Identifier; - fixed_length: number; - data_length: Node | number; - view_length: Node | number; - }; - context_props: Array; - index_name: Identifier; - updates: Array; - dependencies: Set; - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: EachBlock, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - render_keyed({ block, parent_node, parent_nodes, snippet, initial_anchor_node, initial_mount_node, update_anchor_node, update_mount_node }: { - block: Block; - parent_node: Identifier; - parent_nodes: Identifier; - snippet: Node; - initial_anchor_node: Identifier; - initial_mount_node: Identifier; - update_anchor_node: Identifier; - update_mount_node: Identifier; - }): void; - render_unkeyed({ block, parent_nodes, snippet, initial_anchor_node, initial_mount_node, update_anchor_node, update_mount_node }: { - block: Block; - parent_nodes: Identifier; - snippet: Node; - initial_anchor_node: Identifier; - initial_mount_node: Identifier; - update_anchor_node: Identifier; - update_mount_node: Identifier; - }): void; + parent_nodes: Identifier; + snippet: Node; + initial_anchor_node: Identifier; + initial_mount_node: Identifier; + update_anchor_node: Identifier; + update_mount_node: Identifier; + }): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Element/Attribute.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Element/Attribute.d.ts index 6edb5630e1f9..a97d28e94910 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Element/Attribute.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Element/Attribute.d.ts @@ -3,40 +3,257 @@ import Block from '../../Block'; import ElementWrapper from './index'; import { Identifier, Node } from 'estree'; export declare class BaseAttributeWrapper { - node: Attribute; - parent: ElementWrapper; - constructor(parent: ElementWrapper, block: Block, node: Attribute); - render(_block: Block): void; + node: Attribute; + parent: ElementWrapper; + constructor(parent: ElementWrapper, block: Block, node: Attribute); + render(_block: Block): void; } export default class AttributeWrapper extends BaseAttributeWrapper { - node: Attribute; - parent: ElementWrapper; - metadata: any; - name: string; - property_name: string; - is_indirectly_bound_value: boolean; - is_src: boolean; - is_select_value_attribute: boolean; - is_input_value: boolean; - should_cache: boolean; - last: Identifier; - constructor(parent: ElementWrapper, block: Block, node: Attribute); - render(block: Block): void; - get_init(block: Block, value: any): any; - get_dom_update_conditions(block: Block, dependency_condition: Node): Node; - get_dependencies(): string[]; - get_metadata(): any; - get_value(block: any): Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier | { + node: Attribute; + parent: ElementWrapper; + metadata: any; + name: string; + property_name: string; + is_indirectly_bound_value: boolean; + is_src: boolean; + is_select_value_attribute: boolean; + is_input_value: boolean; + should_cache: boolean; + last: Identifier; + constructor(parent: ElementWrapper, block: Block, node: Attribute); + render(block: Block): void; + get_init(block: Block, value: any): any; + get_dom_update_conditions(block: Block, dependency_condition: Node): Node; + get_dependencies(): string[]; + get_metadata(): any; + get_value( + block: any + ): + | Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier + | { type: string; value: string; - }; - get_class_name_text(block: any): Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier | { + }; + get_class_name_text( + block: any + ): + | Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier + | { type: string; value: string; - }; - render_chunks(block: Block): (Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier | { + }; + render_chunks( + block: Block + ): ( + | Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier + | { type: string; value: string; - })[]; - stringify(): string; + } + )[]; + stringify(): string; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Element/Binding.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Element/Binding.d.ts index 78286feff2d6..c15384f069c1 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Element/Binding.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Element/Binding.d.ts @@ -4,20 +4,20 @@ import InlineComponentWrapper from '../InlineComponent'; import Block from '../../Block'; import { Node, Identifier } from 'estree'; export default class BindingWrapper { - node: Binding; - parent: ElementWrapper | InlineComponentWrapper; - object: string; - handler: { - uses_context: boolean; - mutation: (Node | Node[]); - contextual_dependencies: Set; - lhs?: Node; - }; - snippet: Node; - is_readonly: boolean; - needs_lock: boolean; - constructor(block: Block, node: Binding, parent: ElementWrapper | InlineComponentWrapper); - get_dependencies(): Set; - is_readonly_media_attribute(): boolean; - render(block: Block, lock: Identifier): void; + node: Binding; + parent: ElementWrapper | InlineComponentWrapper; + object: string; + handler: { + uses_context: boolean; + mutation: Node | Node[]; + contextual_dependencies: Set; + lhs?: Node; + }; + snippet: Node; + is_readonly: boolean; + needs_lock: boolean; + constructor(block: Block, node: Binding, parent: ElementWrapper | InlineComponentWrapper); + get_dependencies(): Set; + is_readonly_media_attribute(): boolean; + render(block: Block, lock: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Element/EventHandler.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Element/EventHandler.d.ts index 2ee41296efba..7e5ce439cf7f 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Element/EventHandler.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Element/EventHandler.d.ts @@ -3,9 +3,9 @@ import Wrapper from '../shared/Wrapper'; import Block from '../../Block'; import { Expression } from 'estree'; export default class EventHandlerWrapper { - node: EventHandler; - parent: Wrapper; - constructor(node: EventHandler, parent: Wrapper); - get_snippet(block: any): any; - render(block: Block, target: string | Expression): void; + node: EventHandler; + parent: Wrapper; + constructor(node: EventHandler, parent: Wrapper); + get_snippet(block: any): any; + render(block: Block, target: string | Expression): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Element/SpreadAttribute.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Element/SpreadAttribute.d.ts index be5f05691edb..7ceafc0da4d2 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Element/SpreadAttribute.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Element/SpreadAttribute.d.ts @@ -1,3 +1,2 @@ import { BaseAttributeWrapper } from './Attribute'; -export default class SpreadAttributeWrapper extends BaseAttributeWrapper { -} +export default class SpreadAttributeWrapper extends BaseAttributeWrapper {} diff --git a/src/@types/compiler/compile/render_dom/wrappers/Element/StyleAttribute.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Element/StyleAttribute.d.ts index 8d87aa16ffb9..a93605717d47 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Element/StyleAttribute.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Element/StyleAttribute.d.ts @@ -5,12 +5,12 @@ import ElementWrapper from '../Element'; import Expression from '../../../nodes/shared/Expression'; import Text from '../../../nodes/Text'; export interface StyleProp { - key: string; - value: Array; - important: boolean; + key: string; + value: Array; + important: boolean; } export default class StyleAttributeWrapper extends AttributeWrapper { - node: Attribute; - parent: ElementWrapper; - render(block: Block): void; + node: Attribute; + parent: ElementWrapper; + render(block: Block): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Element/index.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Element/index.d.ts index 543d462c575a..54b98c69566e 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Element/index.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Element/index.d.ts @@ -10,32 +10,32 @@ import Binding from './Binding'; import { Identifier } from 'estree'; import EventHandler from './EventHandler'; interface BindingGroup { - events: string[]; - bindings: Binding[]; + events: string[]; + bindings: Binding[]; } export default class ElementWrapper extends Wrapper { - node: Element; - fragment: FragmentWrapper; - attributes: Array; - bindings: Binding[]; - event_handlers: EventHandler[]; - class_dependencies: string[]; - select_binding_dependencies?: Set; - var: any; - void: boolean; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Element, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - can_use_textcontent(): boolean; - get_render_statement(block: Block): import("estree").Expression; - get_claim_statement(nodes: Identifier): import("estree").Expression; - add_directives_in_order(block: Block): void; - add_bindings(block: Block, binding_group: BindingGroup): void; - add_this_binding(block: Block, this_binding: Binding): void; - add_attributes(block: Block): void; - add_spread_attributes(block: Block): void; - add_transitions(block: Block): void; - add_animation(block: Block): void; - add_classes(block: Block): void; - add_manual_style_scoping(block: any): void; + node: Element; + fragment: FragmentWrapper; + attributes: Array; + bindings: Binding[]; + event_handlers: EventHandler[]; + class_dependencies: string[]; + select_binding_dependencies?: Set; + var: any; + void: boolean; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Element, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + can_use_textcontent(): boolean; + get_render_statement(block: Block): import('estree').Expression; + get_claim_statement(nodes: Identifier): import('estree').Expression; + add_directives_in_order(block: Block): void; + add_bindings(block: Block, binding_group: BindingGroup): void; + add_this_binding(block: Block, this_binding: Binding): void; + add_attributes(block: Block): void; + add_spread_attributes(block: Block): void; + add_transitions(block: Block): void; + add_animation(block: Block): void; + add_classes(block: Block): void; + add_manual_style_scoping(block: any): void; } export {}; diff --git a/src/@types/compiler/compile/render_dom/wrappers/Fragment.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Fragment.d.ts index d320e7c7a3fe..e426dab40fe9 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Fragment.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Fragment.d.ts @@ -4,7 +4,7 @@ import Renderer from '../Renderer'; import Block from '../Block'; import { Identifier } from 'estree'; export default class FragmentWrapper { - nodes: Wrapper[]; - constructor(renderer: Renderer, block: Block, nodes: INode[], parent: Wrapper, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + nodes: Wrapper[]; + constructor(renderer: Renderer, block: Block, nodes: INode[], parent: Wrapper, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Head.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Head.d.ts index e21de0349f02..f620a75cf8b3 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Head.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Head.d.ts @@ -5,8 +5,8 @@ import Head from '../../nodes/Head'; import FragmentWrapper from './Fragment'; import { Identifier } from 'estree'; export default class HeadWrapper extends Wrapper { - fragment: FragmentWrapper; - node: Head; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Head, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; + fragment: FragmentWrapper; + node: Head; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Head, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/IfBlock.d.ts b/src/@types/compiler/compile/render_dom/wrappers/IfBlock.d.ts index 2bbaf3250060..827ec0f7aea1 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/IfBlock.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/IfBlock.d.ts @@ -7,48 +7,86 @@ import ElseBlock from '../../nodes/ElseBlock'; import FragmentWrapper from './Fragment'; import { Identifier, Node, UnaryExpression } from 'estree'; declare class IfBlockBranch extends Wrapper { - block: Block; - fragment: FragmentWrapper; - dependencies?: string[]; - condition?: any; - snippet?: Node; - is_dynamic: boolean; - var: any; - constructor(renderer: Renderer, block: Block, parent: IfBlockWrapper, node: IfBlock | ElseBlock, strip_whitespace: boolean, next_sibling: Wrapper); + block: Block; + fragment: FragmentWrapper; + dependencies?: string[]; + condition?: any; + snippet?: Node; + is_dynamic: boolean; + var: any; + constructor(renderer: Renderer, block: Block, parent: IfBlockWrapper, node: IfBlock | ElseBlock, strip_whitespace: boolean, next_sibling: Wrapper); } export default class IfBlockWrapper extends Wrapper { - node: IfBlock; - branches: IfBlockBranch[]; - needs_update: boolean; - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: EachBlock, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - render_compound(block: Block, parent_node: Identifier, _parent_nodes: Identifier, dynamic: any, { name, anchor, has_else, if_exists_condition, has_transitions }: { - name: any; - anchor: any; - has_else: any; - if_exists_condition: any; - has_transitions: any; - }, detaching: any): void; - render_compound_with_outros(block: Block, parent_node: Identifier, _parent_nodes: Identifier, dynamic: any, { name, anchor, has_else, has_transitions, if_exists_condition }: { - name: any; - anchor: any; - has_else: any; - has_transitions: any; - if_exists_condition: any; - }, detaching: any): void; - render_simple(block: Block, parent_node: Identifier, _parent_nodes: Identifier, dynamic: any, { name, anchor, if_exists_condition, has_transitions }: { - name: any; - anchor: any; - if_exists_condition: any; - has_transitions: any; - }, detaching: any): void; - get_initial_dirty_bit(): { - readonly type: "ArrayExpression" | "UnaryExpression"; - elements: UnaryExpression[]; - operator: import("estree").UnaryOperator; - prefix: true; - argument: import("estree").Expression; - }; + node: IfBlock; + branches: IfBlockBranch[]; + needs_update: boolean; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: EachBlock, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + render_compound( + block: Block, + parent_node: Identifier, + _parent_nodes: Identifier, + dynamic: any, + { + name, + anchor, + has_else, + if_exists_condition, + has_transitions, + }: { + name: any; + anchor: any; + has_else: any; + if_exists_condition: any; + has_transitions: any; + }, + detaching: any + ): void; + render_compound_with_outros( + block: Block, + parent_node: Identifier, + _parent_nodes: Identifier, + dynamic: any, + { + name, + anchor, + has_else, + has_transitions, + if_exists_condition, + }: { + name: any; + anchor: any; + has_else: any; + has_transitions: any; + if_exists_condition: any; + }, + detaching: any + ): void; + render_simple( + block: Block, + parent_node: Identifier, + _parent_nodes: Identifier, + dynamic: any, + { + name, + anchor, + if_exists_condition, + has_transitions, + }: { + name: any; + anchor: any; + if_exists_condition: any; + has_transitions: any; + }, + detaching: any + ): void; + get_initial_dirty_bit(): { + readonly type: 'ArrayExpression' | 'UnaryExpression'; + elements: UnaryExpression[]; + operator: import('estree').UnaryOperator; + prefix: true; + argument: import('estree').Expression; + }; } export {}; diff --git a/src/@types/compiler/compile/render_dom/wrappers/InlineComponent/index.d.ts b/src/@types/compiler/compile/render_dom/wrappers/InlineComponent/index.d.ts index 6d7993bb3197..34ff301b189e 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/InlineComponent/index.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/InlineComponent/index.d.ts @@ -6,20 +6,20 @@ import FragmentWrapper from '../Fragment'; import TemplateScope from '../../../nodes/shared/TemplateScope'; import { Node, Identifier } from 'estree'; declare type SlotDefinition = { - block: Block; - scope: TemplateScope; - get_context?: Node; - get_changes?: Node; + block: Block; + scope: TemplateScope; + get_context?: Node; + get_changes?: Node; }; export default class InlineComponentWrapper extends Wrapper { - var: Identifier; - slots: Map; - node: InlineComponent; - fragment: FragmentWrapper; - children: Array; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: InlineComponent, strip_whitespace: boolean, next_sibling: Wrapper); - set_slot(name: string, slot_definition: SlotDefinition): void; - warn_if_reactive(): void; - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + var: Identifier; + slots: Map; + node: InlineComponent; + fragment: FragmentWrapper; + children: Array; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: InlineComponent, strip_whitespace: boolean, next_sibling: Wrapper); + set_slot(name: string, slot_definition: SlotDefinition): void; + warn_if_reactive(): void; + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; } export {}; diff --git a/src/@types/compiler/compile/render_dom/wrappers/KeyBlock.d.ts b/src/@types/compiler/compile/render_dom/wrappers/KeyBlock.d.ts index 0dda974e0a24..f599be8aa134 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/KeyBlock.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/KeyBlock.d.ts @@ -6,13 +6,13 @@ import KeyBlock from '../../nodes/KeyBlock'; import FragmentWrapper from './Fragment'; import { Identifier } from 'estree'; export default class KeyBlockWrapper extends Wrapper { - node: KeyBlock; - fragment: FragmentWrapper; - block: Block; - dependencies: string[]; - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: EachBlock, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - render_static_key(_block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - render_dynamic_key(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + node: KeyBlock; + fragment: FragmentWrapper; + block: Block; + dependencies: string[]; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: EachBlock, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + render_static_key(_block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + render_dynamic_key(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/MustacheTag.d.ts b/src/@types/compiler/compile/render_dom/wrappers/MustacheTag.d.ts index 32decd6ee430..3f221d5ea8e0 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/MustacheTag.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/MustacheTag.d.ts @@ -6,7 +6,7 @@ import MustacheTag from '../../nodes/MustacheTag'; import RawMustacheTag from '../../nodes/RawMustacheTag'; import { Identifier } from 'estree'; export default class MustacheTagWrapper extends Tag { - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/RawMustacheTag.d.ts b/src/@types/compiler/compile/render_dom/wrappers/RawMustacheTag.d.ts index e1b0842ea4a8..69cf65c37216 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/RawMustacheTag.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/RawMustacheTag.d.ts @@ -6,7 +6,7 @@ import MustacheTag from '../../nodes/MustacheTag'; import RawMustacheTag from '../../nodes/RawMustacheTag'; import { Identifier } from 'estree'; export default class RawMustacheTagWrapper extends Tag { - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag); - render(block: Block, parent_node: Identifier, _parent_nodes: Identifier): void; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag); + render(block: Block, parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Slot.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Slot.d.ts index dbfb324da345..3d12ba3c06d8 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Slot.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Slot.d.ts @@ -5,13 +5,13 @@ import Slot from '../../nodes/Slot'; import FragmentWrapper from './Fragment'; import { Identifier } from 'estree'; export default class SlotWrapper extends Wrapper { - node: Slot; - fragment: FragmentWrapper; - fallback: Block | null; - slot_block: Block; - var: Identifier; - dependencies: Set; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Slot, strip_whitespace: boolean, next_sibling: Wrapper); - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; - is_dependency_dynamic(name: string): boolean; + node: Slot; + fragment: FragmentWrapper; + fallback: Block | null; + slot_block: Block; + var: Identifier; + dependencies: Set; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Slot, strip_whitespace: boolean, next_sibling: Wrapper); + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + is_dependency_dynamic(name: string): boolean; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/SlotTemplate.d.ts b/src/@types/compiler/compile/render_dom/wrappers/SlotTemplate.d.ts index ee35c2de3005..ad772633aafd 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/SlotTemplate.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/SlotTemplate.d.ts @@ -7,16 +7,16 @@ import { INode } from '../../nodes/interfaces'; import Let from '../../nodes/Let'; import TemplateScope from '../../nodes/shared/TemplateScope'; declare type NodeWithLets = INode & { - scope: TemplateScope; - lets: Let[]; - slot_template_name: string; + scope: TemplateScope; + lets: Let[]; + slot_template_name: string; }; export default class SlotTemplateWrapper extends Wrapper { - node: NodeWithLets; - fragment: FragmentWrapper; - block: Block; - parent: InlineComponentWrapper; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: NodeWithLets, strip_whitespace: boolean, next_sibling: Wrapper); - render(): void; + node: NodeWithLets; + fragment: FragmentWrapper; + block: Block; + parent: InlineComponentWrapper; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: NodeWithLets, strip_whitespace: boolean, next_sibling: Wrapper); + render(): void; } export {}; diff --git a/src/@types/compiler/compile/render_dom/wrappers/Text.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Text.d.ts index be0981fff163..a6b84b232580 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Text.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Text.d.ts @@ -4,11 +4,11 @@ import Text from '../../nodes/Text'; import Wrapper from './shared/Wrapper'; import { Identifier } from 'estree'; export default class TextWrapper extends Wrapper { - node: Text; - data: string; - skip: boolean; - var: Identifier; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Text, data: string); - use_space(): boolean; - render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; + node: Text; + data: string; + skip: boolean; + var: Identifier; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Text, data: string); + use_space(): boolean; + render(block: Block, parent_node: Identifier, parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Title.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Title.d.ts index f4a6880b0a07..5c12353cfe4c 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Title.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Title.d.ts @@ -4,7 +4,7 @@ import Block from '../Block'; import Title from '../../nodes/Title'; import { Identifier } from 'estree'; export default class TitleWrapper extends Wrapper { - node: Title; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Title, _strip_whitespace: boolean, _next_sibling: Wrapper); - render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; + node: Title; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: Title, _strip_whitespace: boolean, _next_sibling: Wrapper); + render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/Window.d.ts b/src/@types/compiler/compile/render_dom/wrappers/Window.d.ts index 14cc85988a3a..daa748991d76 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/Window.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/Window.d.ts @@ -6,8 +6,8 @@ import { Identifier } from 'estree'; import { TemplateNode } from '../../../interfaces'; import EventHandler from './Element/EventHandler'; export default class WindowWrapper extends Wrapper { - node: Window; - handlers: EventHandler[]; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode); - render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; + node: Window; + handlers: EventHandler[]; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode); + render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/shared/Tag.d.ts b/src/@types/compiler/compile/render_dom/wrappers/shared/Tag.d.ts index 3c510f1bea0f..7cae664d498e 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/shared/Tag.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/shared/Tag.d.ts @@ -5,10 +5,82 @@ import MustacheTag from '../../../nodes/MustacheTag'; import RawMustacheTag from '../../../nodes/RawMustacheTag'; import { Node } from 'estree'; export default class Tag extends Wrapper { - node: MustacheTag | RawMustacheTag; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag); - is_dependencies_static(): boolean; - rename_this_method(block: Block, update: ((value: Node) => (Node | Node[]))): { - init: import("estree").Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier; - }; + node: MustacheTag | RawMustacheTag; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag); + is_dependencies_static(): boolean; + rename_this_method( + block: Block, + update: (value: Node) => Node | Node[] + ): { + init: + | import('estree').Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier; + }; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/shared/Wrapper.d.ts b/src/@types/compiler/compile/render_dom/wrappers/shared/Wrapper.d.ts index 411bf0f6037e..da34232da8ec 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/shared/Wrapper.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/shared/Wrapper.d.ts @@ -3,19 +3,19 @@ import Block from '../../Block'; import { TemplateNode } from '../../../../interfaces'; import { Identifier } from 'estree'; export default class Wrapper { - renderer: Renderer; - parent: Wrapper; - node: TemplateNode; - prev: Wrapper | null; - next: Wrapper | null; - var: Identifier; - can_use_innerhtml: boolean; - is_static_content: boolean; - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode); - cannot_use_innerhtml(): void; - not_static_content(): void; - get_or_create_anchor(block: Block, parent_node: Identifier, parent_nodes: Identifier): Identifier; - get_update_mount_node(anchor: Identifier): Identifier; - is_dom_node(): boolean; - render(_block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; + renderer: Renderer; + parent: Wrapper; + node: TemplateNode; + prev: Wrapper | null; + next: Wrapper | null; + var: Identifier; + can_use_innerhtml: boolean; + is_static_content: boolean; + constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode); + cannot_use_innerhtml(): void; + not_static_content(): void; + get_or_create_anchor(block: Block, parent_node: Identifier, parent_nodes: Identifier): Identifier; + get_update_mount_node(anchor: Identifier): Identifier; + is_dom_node(): boolean; + render(_block: Block, _parent_node: Identifier, _parent_nodes: Identifier): void; } diff --git a/src/@types/compiler/compile/render_dom/wrappers/shared/bind_this.d.ts b/src/@types/compiler/compile/render_dom/wrappers/shared/bind_this.d.ts index ebe31785983e..1a46d65098e3 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/shared/bind_this.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/shared/bind_this.d.ts @@ -2,4 +2,4 @@ import Component from '../../../Component'; import Block from '../../Block'; import BindingWrapper from '../Element/Binding'; import { Identifier } from 'estree'; -export default function bind_this(component: Component, block: Block, binding: BindingWrapper, variable: Identifier): import("estree").Node[]; +export default function bind_this(component: Component, block: Block, binding: BindingWrapper, variable: Identifier): import('estree').Node[]; diff --git a/src/@types/compiler/compile/render_dom/wrappers/shared/get_slot_definition.d.ts b/src/@types/compiler/compile/render_dom/wrappers/shared/get_slot_definition.d.ts index 5a96c33bfd15..9e4cd8a7051d 100644 --- a/src/@types/compiler/compile/render_dom/wrappers/shared/get_slot_definition.d.ts +++ b/src/@types/compiler/compile/render_dom/wrappers/shared/get_slot_definition.d.ts @@ -1,14 +1,20 @@ import Let from '../../../nodes/Let'; import Block from '../../Block'; import TemplateScope from '../../../nodes/shared/TemplateScope'; -export declare function get_slot_definition(block: Block, scope: TemplateScope, lets: Let[]): { - block: Block; - scope: TemplateScope; - get_context?: undefined; - get_changes?: undefined; -} | { - block: Block; - scope: TemplateScope; - get_context: import("estree").Expression; - get_changes: import("estree").Expression; -}; +export declare function get_slot_definition( + block: Block, + scope: TemplateScope, + lets: Let[] +): + | { + block: Block; + scope: TemplateScope; + get_context?: undefined; + get_changes?: undefined; + } + | { + block: Block; + scope: TemplateScope; + get_context: import('estree').Expression; + get_changes: import('estree').Expression; + }; diff --git a/src/@types/compiler/compile/render_ssr/Renderer.d.ts b/src/@types/compiler/compile/render_ssr/Renderer.d.ts index 2a7f295519c9..aa2de457c2d5 100644 --- a/src/@types/compiler/compile/render_ssr/Renderer.d.ts +++ b/src/@types/compiler/compile/render_ssr/Renderer.d.ts @@ -2,32 +2,32 @@ import { AppendTarget, CompileOptions } from '../../interfaces'; import { INode } from '../nodes/interfaces'; import { Expression, TemplateLiteral, Identifier } from 'estree'; export interface RenderOptions extends CompileOptions { - locate: (c: number) => { - line: number; - column: number; - }; - head_id?: string; + locate: ( + c: number + ) => { + line: number; + column: number; + }; + head_id?: string; } export default class Renderer { - has_bindings: boolean; - name: Identifier; - stack: Array<{ - current: { - value: string; - }; - literal: TemplateLiteral; - }>; + has_bindings: boolean; + name: Identifier; + stack: Array<{ current: { - value: string; + value: string; }; literal: TemplateLiteral; - targets: AppendTarget[]; - constructor({ name }: { - name: any; - }); - add_string(str: string): void; - add_expression(node: Expression): void; - push(): void; - pop(): TemplateLiteral; - render(nodes: INode[], options: RenderOptions): void; + }>; + current: { + value: string; + }; + literal: TemplateLiteral; + targets: AppendTarget[]; + constructor({ name }: { name: any }); + add_string(str: string): void; + add_expression(node: Expression): void; + push(): void; + pop(): TemplateLiteral; + render(nodes: INode[], options: RenderOptions): void; } diff --git a/src/@types/compiler/compile/render_ssr/handlers/Slot.d.ts b/src/@types/compiler/compile/render_ssr/handlers/Slot.d.ts index b07dd1374e38..3a17a1ade248 100644 --- a/src/@types/compiler/compile/render_ssr/handlers/Slot.d.ts +++ b/src/@types/compiler/compile/render_ssr/handlers/Slot.d.ts @@ -1,5 +1,9 @@ import Renderer, { RenderOptions } from '../Renderer'; import Slot from '../../nodes/Slot'; -export default function (node: Slot, renderer: Renderer, options: RenderOptions & { +export default function ( + node: Slot, + renderer: Renderer, + options: RenderOptions & { slot_scopes: Map; -}): void; + } +): void; diff --git a/src/@types/compiler/compile/render_ssr/handlers/SlotTemplate.d.ts b/src/@types/compiler/compile/render_ssr/handlers/SlotTemplate.d.ts index defd084a74ac..27985cc0fe0a 100644 --- a/src/@types/compiler/compile/render_ssr/handlers/SlotTemplate.d.ts +++ b/src/@types/compiler/compile/render_ssr/handlers/SlotTemplate.d.ts @@ -2,6 +2,10 @@ import Renderer, { RenderOptions } from '../Renderer'; import SlotTemplate from '../../nodes/SlotTemplate'; import InlineComponent from '../../nodes/InlineComponent'; import Element from '../../nodes/Element'; -export default function (node: SlotTemplate | Element | InlineComponent, renderer: Renderer, options: RenderOptions & { +export default function ( + node: SlotTemplate | Element | InlineComponent, + renderer: Renderer, + options: RenderOptions & { slot_scopes: Map; -}): void; + } +): void; diff --git a/src/@types/compiler/compile/render_ssr/index.d.ts b/src/@types/compiler/compile/render_ssr/index.d.ts index 011307736065..21229340084f 100644 --- a/src/@types/compiler/compile/render_ssr/index.d.ts +++ b/src/@types/compiler/compile/render_ssr/index.d.ts @@ -1,7 +1,10 @@ import Component from '../Component'; import { CompileOptions, CssResult } from '../../interfaces'; import { Node } from 'estree'; -export default function ssr(component: Component, options: CompileOptions): { - js: Node[]; - css: CssResult; +export default function ssr( + component: Component, + options: CompileOptions +): { + js: Node[]; + css: CssResult; }; diff --git a/src/@types/compiler/compile/utils/flatten_reference.d.ts b/src/@types/compiler/compile/utils/flatten_reference.d.ts index e07492982002..d50cc454d3f5 100644 --- a/src/@types/compiler/compile/utils/flatten_reference.d.ts +++ b/src/@types/compiler/compile/utils/flatten_reference.d.ts @@ -1,6 +1,8 @@ import { Node } from 'estree'; -export default function flatten_reference(node: Node): { - name: string; - nodes: any[]; - parts: any[]; +export default function flatten_reference( + node: Node +): { + name: string; + nodes: any[]; + parts: any[]; }; diff --git a/src/@types/compiler/compile/utils/get_slot_data.d.ts b/src/@types/compiler/compile/utils/get_slot_data.d.ts index 45796e4d45d3..6c8a9807b1a6 100644 --- a/src/@types/compiler/compile/utils/get_slot_data.d.ts +++ b/src/@types/compiler/compile/utils/get_slot_data.d.ts @@ -1,9 +1,85 @@ import Attribute from '../nodes/Attribute'; import Block from '../render_dom/Block'; -export default function get_slot_data(values: Map, block?: Block): { - type: string; - properties: (import("estree").Property | import("estree").SpreadElement | { +export default function get_slot_data( + values: Map, + block?: Block +): { + type: string; + properties: ( + | import('estree').Property + | import('estree').SpreadElement + | { type: string; - argument: import("estree").Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier; - })[]; + argument: + | import('estree').Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier; + } + )[]; }; diff --git a/src/@types/compiler/compile/utils/replace_object.d.ts b/src/@types/compiler/compile/utils/replace_object.d.ts index bd4ded862574..e1f3491d9308 100644 --- a/src/@types/compiler/compile/utils/replace_object.d.ts +++ b/src/@types/compiler/compile/utils/replace_object.d.ts @@ -1,2 +1,74 @@ import { Node } from 'estree'; -export default function replace_object(node: Node, replacement: Node): import("estree").Identifier | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").Program | import("estree").FunctionDeclaration | import("estree").FunctionExpression | import("estree").ArrowFunctionExpression | import("estree").SwitchCase | import("estree").CatchClause | import("estree").VariableDeclarator | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").ClassDeclaration | import("estree").ThisExpression | import("estree").ArrayExpression | import("estree").ObjectExpression | import("estree").YieldExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").BinaryExpression | import("estree").AssignmentExpression | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").ConditionalExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").SequenceExpression | import("estree").TemplateLiteral | import("estree").TaggedTemplateExpression | import("estree").ClassExpression | import("estree").MetaProperty | import("estree").AwaitExpression | import("estree").ImportExpression | import("estree").ChainExpression | import("estree").Property | import("estree").Super | import("estree").TemplateElement | import("estree").SpreadElement | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").ClassBody | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier; +export default function replace_object( + node: Node, + replacement: Node +): + | import('estree').Identifier + | import('estree').SimpleLiteral + | import('estree').RegExpLiteral + | import('estree').Program + | import('estree').FunctionDeclaration + | import('estree').FunctionExpression + | import('estree').ArrowFunctionExpression + | import('estree').SwitchCase + | import('estree').CatchClause + | import('estree').VariableDeclarator + | import('estree').ExpressionStatement + | import('estree').BlockStatement + | import('estree').EmptyStatement + | import('estree').DebuggerStatement + | import('estree').WithStatement + | import('estree').ReturnStatement + | import('estree').LabeledStatement + | import('estree').BreakStatement + | import('estree').ContinueStatement + | import('estree').IfStatement + | import('estree').SwitchStatement + | import('estree').ThrowStatement + | import('estree').TryStatement + | import('estree').WhileStatement + | import('estree').DoWhileStatement + | import('estree').ForStatement + | import('estree').ForInStatement + | import('estree').ForOfStatement + | import('estree').VariableDeclaration + | import('estree').ClassDeclaration + | import('estree').ThisExpression + | import('estree').ArrayExpression + | import('estree').ObjectExpression + | import('estree').YieldExpression + | import('estree').UnaryExpression + | import('estree').UpdateExpression + | import('estree').BinaryExpression + | import('estree').AssignmentExpression + | import('estree').LogicalExpression + | import('estree').MemberExpression + | import('estree').ConditionalExpression + | import('estree').SimpleCallExpression + | import('estree').NewExpression + | import('estree').SequenceExpression + | import('estree').TemplateLiteral + | import('estree').TaggedTemplateExpression + | import('estree').ClassExpression + | import('estree').MetaProperty + | import('estree').AwaitExpression + | import('estree').ImportExpression + | import('estree').ChainExpression + | import('estree').Property + | import('estree').Super + | import('estree').TemplateElement + | import('estree').SpreadElement + | import('estree').ObjectPattern + | import('estree').ArrayPattern + | import('estree').RestElement + | import('estree').AssignmentPattern + | import('estree').ClassBody + | import('estree').MethodDefinition + | import('estree').ImportDeclaration + | import('estree').ExportNamedDeclaration + | import('estree').ExportDefaultDeclaration + | import('estree').ExportAllDeclaration + | import('estree').ImportSpecifier + | import('estree').ImportDefaultSpecifier + | import('estree').ImportNamespaceSpecifier + | import('estree').ExportSpecifier; diff --git a/src/@types/compiler/compile/utils/scope.d.ts b/src/@types/compiler/compile/utils/scope.d.ts index e5b08f9d5c51..ae2fc773f801 100644 --- a/src/@types/compiler/compile/utils/scope.d.ts +++ b/src/@types/compiler/compile/utils/scope.d.ts @@ -1,8 +1,10 @@ import { Node } from 'estree'; import { Scope, extract_names, extract_identifiers } from 'periscopic'; -export declare function create_scopes(expression: Node): { - map: WeakMap; - scope: Scope; - globals: Map; +export declare function create_scopes( + expression: Node +): { + map: WeakMap; + scope: Scope; + globals: Map; }; export { Scope, extract_names, extract_identifiers }; diff --git a/src/@types/compiler/compile/utils/stringify.d.ts b/src/@types/compiler/compile/utils/stringify.d.ts index 471194a1be9a..17808aeeb4e9 100644 --- a/src/@types/compiler/compile/utils/stringify.d.ts +++ b/src/@types/compiler/compile/utils/stringify.d.ts @@ -1,9 +1,16 @@ -export declare function string_literal(data: string): { - type: string; - value: string; +export declare function string_literal( + data: string +): { + type: string; + value: string; }; -export declare function escape(data: string, { only_escape_at_symbol }?: { +export declare function escape( + data: string, + { + only_escape_at_symbol, + }?: { only_escape_at_symbol?: boolean; -}): string; + } +): string; export declare function escape_html(html: any): string; export declare function escape_template(str: any): any; diff --git a/src/@types/compiler/index.d.ts b/src/@types/compiler/index.d.ts index 99fe8e027e80..1b04db06a66a 100644 --- a/src/@types/compiler/index.d.ts +++ b/src/@types/compiler/index.d.ts @@ -2,4 +2,4 @@ export { default as compile } from './compile/index'; export { default as parse } from './parse/index'; export { default as preprocess } from './preprocess/index'; export { walk } from 'estree-walker'; -export declare const VERSION = "__VERSION__"; +export declare const VERSION = '__VERSION__'; diff --git a/src/@types/compiler/interfaces.d.ts b/src/@types/compiler/interfaces.d.ts index 2fc2db5442e7..6f1bffe9f0d9 100644 --- a/src/@types/compiler/interfaces.d.ts +++ b/src/@types/compiler/interfaces.d.ts @@ -1,148 +1,143 @@ import { Node, Program } from 'estree'; import { SourceMap } from 'magic-string'; interface BaseNode { - start: number; - end: number; - type: string; - children?: TemplateNode[]; - [prop_name: string]: any; + start: number; + end: number; + type: string; + children?: TemplateNode[]; + [prop_name: string]: any; } export interface Fragment extends BaseNode { - type: 'Fragment'; - children: TemplateNode[]; + type: 'Fragment'; + children: TemplateNode[]; } export interface Text extends BaseNode { - type: 'Text'; - data: string; + type: 'Text'; + data: string; } export interface MustacheTag extends BaseNode { - type: 'MustacheTag'; - expression: string; + type: 'MustacheTag'; + expression: string; } export declare type DirectiveType = 'Action' | 'Animation' | 'Binding' | 'Class' | 'EventHandler' | 'Let' | 'Ref' | 'Transition'; interface BaseDirective extends BaseNode { - type: DirectiveType; - expression: null | Node; - name: string; - modifiers: string[]; + type: DirectiveType; + expression: null | Node; + name: string; + modifiers: string[]; } export interface Transition extends BaseDirective { - type: 'Transition'; - intro: boolean; - outro: boolean; + type: 'Transition'; + intro: boolean; + outro: boolean; } export declare type Directive = BaseDirective | Transition; export declare type TemplateNode = Text | MustacheTag | BaseNode | Directive | Transition; export interface Parser { - readonly template: string; - readonly filename?: string; - index: number; - stack: Node[]; - html: Node; - css: Node; - js: Node; - meta_tags: {}; + readonly template: string; + readonly filename?: string; + index: number; + stack: Node[]; + html: Node; + css: Node; + js: Node; + meta_tags: {}; } export interface Script extends BaseNode { - type: 'Script'; - context: string; - content: Program; + type: 'Script'; + context: string; + content: Program; } export interface Style extends BaseNode { - type: 'Style'; - attributes: any[]; - children: any[]; - content: { - start: number; - end: number; - styles: string; - }; + type: 'Style'; + attributes: any[]; + children: any[]; + content: { + start: number; + end: number; + styles: string; + }; } export interface Ast { - html: TemplateNode; - css: Style; - instance: Script; - module: Script; + html: TemplateNode; + css: Style; + instance: Script; + module: Script; } export interface Warning { - start?: { - line: number; - column: number; - pos?: number; - }; - end?: { - line: number; - column: number; - }; + start?: { + line: number; + column: number; pos?: number; - code: string; - message: string; - filename?: string; - frame?: string; - toString: () => string; + }; + end?: { + line: number; + column: number; + }; + pos?: number; + code: string; + message: string; + filename?: string; + frame?: string; + toString: () => string; } export declare type ModuleFormat = 'esm' | 'cjs'; -export declare type CssHashGetter = (args: { - name: string; - filename: string | undefined; - css: string; - hash: (input: string) => string; -}) => string; +export declare type CssHashGetter = (args: { name: string; filename: string | undefined; css: string; hash: (input: string) => string }) => string; export interface CompileOptions { - format?: ModuleFormat; - name?: string; - filename?: string; - generate?: 'dom' | 'ssr' | false; - sourcemap?: object | string; - outputFilename?: string; - cssOutputFilename?: string; - sveltePath?: string; - dev?: boolean; - accessors?: boolean; - immutable?: boolean; - hydratable?: boolean; - legacy?: boolean; - customElement?: boolean; - tag?: string; - css?: boolean; - loopGuardTimeout?: number; - namespace?: string; - cssHash?: CssHashGetter; - preserveComments?: boolean; - preserveWhitespace?: boolean; + format?: ModuleFormat; + name?: string; + filename?: string; + generate?: 'dom' | 'ssr' | false; + sourcemap?: object | string; + outputFilename?: string; + cssOutputFilename?: string; + sveltePath?: string; + dev?: boolean; + accessors?: boolean; + immutable?: boolean; + hydratable?: boolean; + legacy?: boolean; + customElement?: boolean; + tag?: string; + css?: boolean; + loopGuardTimeout?: number; + namespace?: string; + cssHash?: CssHashGetter; + preserveComments?: boolean; + preserveWhitespace?: boolean; } export interface ParserOptions { - filename?: string; - customElement?: boolean; + filename?: string; + customElement?: boolean; } export interface Visitor { - enter: (node: Node) => void; - leave?: (node: Node) => void; + enter: (node: Node) => void; + leave?: (node: Node) => void; } export interface AppendTarget { - slots: Record; - slot_stack: string[]; + slots: Record; + slot_stack: string[]; } export interface Var { - name: string; - export_name?: string; - injected?: boolean; - module?: boolean; - mutated?: boolean; - reassigned?: boolean; - referenced?: boolean; - referenced_from_script?: boolean; - writable?: boolean; - global?: boolean; - internal?: boolean; - initialised?: boolean; - hoistable?: boolean; - subscribable?: boolean; - is_reactive_dependency?: boolean; - imported?: boolean; + name: string; + export_name?: string; + injected?: boolean; + module?: boolean; + mutated?: boolean; + reassigned?: boolean; + referenced?: boolean; + referenced_from_script?: boolean; + writable?: boolean; + global?: boolean; + internal?: boolean; + initialised?: boolean; + hoistable?: boolean; + subscribable?: boolean; + is_reactive_dependency?: boolean; + imported?: boolean; } export interface CssResult { - code: string; - map: SourceMap; + code: string; + map: SourceMap; } export {}; diff --git a/src/@types/compiler/parse/index.d.ts b/src/@types/compiler/parse/index.d.ts index 1d2f6ec00455..7b5af3de32d8 100644 --- a/src/@types/compiler/parse/index.d.ts +++ b/src/@types/compiler/parse/index.d.ts @@ -1,35 +1,41 @@ import { TemplateNode, Ast, ParserOptions, Fragment, Style, Script } from '../interfaces'; interface LastAutoClosedTag { - tag: string; - reason: string; - depth: number; + tag: string; + reason: string; + depth: number; } export declare class Parser { - readonly template: string; - readonly filename?: string; - readonly customElement: boolean; - index: number; - stack: TemplateNode[]; - html: Fragment; - css: Style[]; - js: Script[]; - meta_tags: {}; - last_auto_closed_tag?: LastAutoClosedTag; - constructor(template: string, options: ParserOptions); - current(): TemplateNode; - acorn_error(err: any): void; - error({ code, message }: { - code: string; - message: string; - }, index?: number): void; - eat(str: string, required?: boolean, message?: string): boolean; - match(str: string): boolean; - match_regex(pattern: RegExp): string; - allow_whitespace(): void; - read(pattern: RegExp): string; - read_identifier(allow_reserved?: boolean): string; - read_until(pattern: RegExp): string; - require_whitespace(): void; + readonly template: string; + readonly filename?: string; + readonly customElement: boolean; + index: number; + stack: TemplateNode[]; + html: Fragment; + css: Style[]; + js: Script[]; + meta_tags: {}; + last_auto_closed_tag?: LastAutoClosedTag; + constructor(template: string, options: ParserOptions); + current(): TemplateNode; + acorn_error(err: any): void; + error( + { + code, + message, + }: { + code: string; + message: string; + }, + index?: number + ): void; + eat(str: string, required?: boolean, message?: string): boolean; + match(str: string): boolean; + match_regex(pattern: RegExp): string; + allow_whitespace(): void; + read(pattern: RegExp): string; + read_identifier(allow_reserved?: boolean): string; + read_until(pattern: RegExp): string; + require_whitespace(): void; } export default function parse(template: string, options?: ParserOptions): Ast; export {}; diff --git a/src/@types/compiler/parse/read/context.d.ts b/src/@types/compiler/parse/read/context.d.ts index e6d53f41dc8b..259ab0276300 100644 --- a/src/@types/compiler/parse/read/context.d.ts +++ b/src/@types/compiler/parse/read/context.d.ts @@ -1,6 +1,8 @@ import { Parser } from '../index'; import { Pattern } from 'estree'; -export default function read_context(parser: Parser): Pattern & { - start: number; - end: number; +export default function read_context( + parser: Parser +): Pattern & { + start: number; + end: number; }; diff --git a/src/@types/compiler/parse/utils/entities.d.ts b/src/@types/compiler/parse/utils/entities.d.ts index 41902a659898..12ce08bdfe33 100644 --- a/src/@types/compiler/parse/utils/entities.d.ts +++ b/src/@types/compiler/parse/utils/entities.d.ts @@ -1,2034 +1,2034 @@ declare const _default: { - CounterClockwiseContourIntegral: number; - ClockwiseContourIntegral: number; - DoubleLongLeftRightArrow: number; - DiacriticalDoubleAcute: number; - NotSquareSupersetEqual: number; - CloseCurlyDoubleQuote: number; - DoubleContourIntegral: number; - FilledVerySmallSquare: number; - NegativeVeryThinSpace: number; - NotPrecedesSlantEqual: number; - NotRightTriangleEqual: number; - NotSucceedsSlantEqual: number; - CapitalDifferentialD: number; - DoubleLeftRightArrow: number; - DoubleLongRightArrow: number; - EmptyVerySmallSquare: number; - NestedGreaterGreater: number; - NotDoubleVerticalBar: number; - NotLeftTriangleEqual: number; - NotSquareSubsetEqual: number; - OpenCurlyDoubleQuote: number; - ReverseUpEquilibrium: number; - DoubleLongLeftArrow: number; - DownLeftRightVector: number; - LeftArrowRightArrow: number; - NegativeMediumSpace: number; - RightArrowLeftArrow: number; - SquareSupersetEqual: number; - leftrightsquigarrow: number; - DownRightTeeVector: number; - DownRightVectorBar: number; - LongLeftRightArrow: number; - Longleftrightarrow: number; - NegativeThickSpace: number; - PrecedesSlantEqual: number; - ReverseEquilibrium: number; - RightDoubleBracket: number; - RightDownTeeVector: number; - RightDownVectorBar: number; - RightTriangleEqual: number; - SquareIntersection: number; - SucceedsSlantEqual: number; - blacktriangleright: number; - longleftrightarrow: number; - DoubleUpDownArrow: number; - DoubleVerticalBar: number; - DownLeftTeeVector: number; - DownLeftVectorBar: number; - FilledSmallSquare: number; - GreaterSlantEqual: number; - LeftDoubleBracket: number; - LeftDownTeeVector: number; - LeftDownVectorBar: number; - LeftTriangleEqual: number; - NegativeThinSpace: number; - NotReverseElement: number; - NotTildeFullEqual: number; - RightAngleBracket: number; - RightUpDownVector: number; - SquareSubsetEqual: number; - VerticalSeparator: number; - blacktriangledown: number; - blacktriangleleft: number; - leftrightharpoons: number; - rightleftharpoons: number; - twoheadrightarrow: number; - DiacriticalAcute: number; - DiacriticalGrave: number; - DiacriticalTilde: number; - DoubleRightArrow: number; - DownArrowUpArrow: number; - EmptySmallSquare: number; - GreaterEqualLess: number; - GreaterFullEqual: number; - LeftAngleBracket: number; - LeftUpDownVector: number; - LessEqualGreater: number; - NonBreakingSpace: number; - NotRightTriangle: number; - NotSupersetEqual: number; - RightTriangleBar: number; - RightUpTeeVector: number; - RightUpVectorBar: number; - UnderParenthesis: number; - UpArrowDownArrow: number; - circlearrowright: number; - downharpoonright: number; - ntrianglerighteq: number; - rightharpoondown: number; - rightrightarrows: number; - twoheadleftarrow: number; - vartriangleright: number; - CloseCurlyQuote: number; - ContourIntegral: number; - DoubleDownArrow: number; - DoubleLeftArrow: number; - DownRightVector: number; - LeftRightVector: number; - LeftTriangleBar: number; - LeftUpTeeVector: number; - LeftUpVectorBar: number; - LowerRightArrow: number; - NotGreaterEqual: number; - NotGreaterTilde: number; - NotLeftTriangle: number; - OverParenthesis: number; - RightDownVector: number; - ShortRightArrow: number; - UpperRightArrow: number; - bigtriangledown: number; - circlearrowleft: number; - curvearrowright: number; - downharpoonleft: number; - leftharpoondown: number; - leftrightarrows: number; - nLeftrightarrow: number; - nleftrightarrow: number; - ntrianglelefteq: number; - rightleftarrows: number; - rightsquigarrow: number; - rightthreetimes: number; - straightepsilon: number; - trianglerighteq: number; - vartriangleleft: number; - DiacriticalDot: number; - DoubleRightTee: number; - DownLeftVector: number; - GreaterGreater: number; - HorizontalLine: number; - InvisibleComma: number; - InvisibleTimes: number; - LeftDownVector: number; - LeftRightArrow: number; - Leftrightarrow: number; - LessSlantEqual: number; - LongRightArrow: number; - Longrightarrow: number; - LowerLeftArrow: number; - NestedLessLess: number; - NotGreaterLess: number; - NotLessGreater: number; - NotSubsetEqual: number; - NotVerticalBar: number; - OpenCurlyQuote: number; - ReverseElement: number; - RightTeeVector: number; - RightVectorBar: number; - ShortDownArrow: number; - ShortLeftArrow: number; - SquareSuperset: number; - TildeFullEqual: number; - UpperLeftArrow: number; - ZeroWidthSpace: number; - curvearrowleft: number; - doublebarwedge: number; - downdownarrows: number; - hookrightarrow: number; - leftleftarrows: number; - leftrightarrow: number; - leftthreetimes: number; - longrightarrow: number; - looparrowright: number; - nshortparallel: number; - ntriangleright: number; - rightarrowtail: number; - rightharpoonup: number; - trianglelefteq: number; - upharpoonright: number; - ApplyFunction: number; - DifferentialD: number; - DoubleLeftTee: number; - DoubleUpArrow: number; - LeftTeeVector: number; - LeftVectorBar: number; - LessFullEqual: number; - LongLeftArrow: number; - Longleftarrow: number; - NotTildeEqual: number; - NotTildeTilde: number; - Poincareplane: number; - PrecedesEqual: number; - PrecedesTilde: number; - RightArrowBar: number; - RightTeeArrow: number; - RightTriangle: number; - RightUpVector: number; - SucceedsEqual: number; - SucceedsTilde: number; - SupersetEqual: number; - UpEquilibrium: number; - VerticalTilde: number; - VeryThinSpace: number; - bigtriangleup: number; - blacktriangle: number; - divideontimes: number; - fallingdotseq: number; - hookleftarrow: number; - leftarrowtail: number; - leftharpoonup: number; - longleftarrow: number; - looparrowleft: number; - measuredangle: number; - ntriangleleft: number; - shortparallel: number; - smallsetminus: number; - triangleright: number; - upharpoonleft: number; - DownArrowBar: number; - DownTeeArrow: number; - ExponentialE: number; - GreaterEqual: number; - GreaterTilde: number; - HilbertSpace: number; - HumpDownHump: number; - Intersection: number; - LeftArrowBar: number; - LeftTeeArrow: number; - LeftTriangle: number; - LeftUpVector: number; - NotCongruent: number; - NotLessEqual: number; - NotLessTilde: number; - Proportional: number; - RightCeiling: number; - RoundImplies: number; - ShortUpArrow: number; - SquareSubset: number; - UnderBracket: number; - VerticalLine: number; - blacklozenge: number; - exponentiale: number; - risingdotseq: number; - triangledown: number; - triangleleft: number; - CircleMinus: number; - CircleTimes: number; - Equilibrium: number; - GreaterLess: number; - LeftCeiling: number; - LessGreater: number; - MediumSpace: number; - NotPrecedes: number; - NotSucceeds: number; - OverBracket: number; - RightVector: number; - Rrightarrow: number; - RuleDelayed: number; - SmallCircle: number; - SquareUnion: number; - SubsetEqual: number; - UpDownArrow: number; - Updownarrow: number; - VerticalBar: number; - backepsilon: number; - blacksquare: number; - circledcirc: number; - circleddash: number; - curlyeqprec: number; - curlyeqsucc: number; - diamondsuit: number; - eqslantless: number; - expectation: number; - nRightarrow: number; - nrightarrow: number; - preccurlyeq: number; - precnapprox: number; - quaternions: number; - straightphi: number; - succcurlyeq: number; - succnapprox: number; - thickapprox: number; - updownarrow: number; - Bernoullis: number; - CirclePlus: number; - EqualTilde: number; - Fouriertrf: number; - ImaginaryI: number; - Laplacetrf: number; - LeftVector: number; - Lleftarrow: number; - NotElement: number; - NotGreater: number; - Proportion: number; - RightArrow: number; - RightFloor: number; - Rightarrow: number; - TildeEqual: number; - TildeTilde: number; - UnderBrace: number; - UpArrowBar: number; - UpTeeArrow: number; - circledast: number; - complement: number; - curlywedge: number; - eqslantgtr: number; - gtreqqless: number; - lessapprox: number; - lesseqqgtr: number; - lmoustache: number; - longmapsto: number; - mapstodown: number; - mapstoleft: number; - nLeftarrow: number; - nleftarrow: number; - precapprox: number; - rightarrow: number; - rmoustache: number; - sqsubseteq: number; - sqsupseteq: number; - subsetneqq: number; - succapprox: number; - supsetneqq: number; - upuparrows: number; - varepsilon: number; - varnothing: number; - Backslash: number; - CenterDot: number; - CircleDot: number; - Congruent: number; - Coproduct: number; - DoubleDot: number; - DownArrow: number; - DownBreve: number; - Downarrow: number; - HumpEqual: number; - LeftArrow: number; - LeftFloor: number; - Leftarrow: number; - LessTilde: number; - Mellintrf: number; - MinusPlus: number; - NotCupCap: number; - NotExists: number; - OverBrace: number; - PlusMinus: number; - Therefore: number; - ThinSpace: number; - TripleDot: number; - UnionPlus: number; - backprime: number; - backsimeq: number; - bigotimes: number; - centerdot: number; - checkmark: number; - complexes: number; - dotsquare: number; - downarrow: number; - gtrapprox: number; - gtreqless: number; - heartsuit: number; - leftarrow: number; - lesseqgtr: number; - nparallel: number; - nshortmid: number; - nsubseteq: number; - nsupseteq: number; - pitchfork: number; - rationals: number; - spadesuit: number; - subseteqq: number; - subsetneq: number; - supseteqq: number; - supsetneq: number; - therefore: number; - triangleq: number; - varpropto: number; - DDotrahd: number; - DotEqual: number; - Integral: number; - LessLess: number; - NotEqual: number; - NotTilde: number; - PartialD: number; - Precedes: number; - RightTee: number; - Succeeds: number; - SuchThat: number; - Superset: number; - Uarrocir: number; - UnderBar: number; - andslope: number; - angmsdaa: number; - angmsdab: number; - angmsdac: number; - angmsdad: number; - angmsdae: number; - angmsdaf: number; - angmsdag: number; - angmsdah: number; - angrtvbd: number; - approxeq: number; - awconint: number; - backcong: number; - barwedge: number; - bbrktbrk: number; - bigoplus: number; - bigsqcup: number; - biguplus: number; - bigwedge: number; - boxminus: number; - boxtimes: number; - capbrcup: number; - circledR: number; - circledS: number; - cirfnint: number; - clubsuit: number; - cupbrcap: number; - curlyvee: number; - cwconint: number; - doteqdot: number; - dotminus: number; - drbkarow: number; - dzigrarr: number; - elinters: number; - emptyset: number; - eqvparsl: number; - fpartint: number; - geqslant: number; - gesdotol: number; - gnapprox: number; - hksearow: number; - hkswarow: number; - imagline: number; - imagpart: number; - infintie: number; - integers: number; - intercal: number; - intlarhk: number; - laemptyv: number; - ldrushar: number; - leqslant: number; - lesdotor: number; - llcorner: number; - lnapprox: number; - lrcorner: number; - lurdshar: number; - mapstoup: number; - multimap: number; - naturals: number; - otimesas: number; - parallel: number; - plusacir: number; - pointint: number; - precneqq: number; - precnsim: number; - profalar: number; - profline: number; - profsurf: number; - raemptyv: number; - realpart: number; - rppolint: number; - rtriltri: number; - scpolint: number; - setminus: number; - shortmid: number; - smeparsl: number; - sqsubset: number; - sqsupset: number; - subseteq: number; - succneqq: number; - succnsim: number; - supseteq: number; - thetasym: number; - thicksim: number; - timesbar: number; - triangle: number; - triminus: number; - trpezium: number; - ulcorner: number; - urcorner: number; - varkappa: number; - varsigma: number; - vartheta: number; - Because: number; - Cayleys: number; - Cconint: number; - Cedilla: number; - Diamond: number; - DownTee: number; - Element: number; - Epsilon: number; - Implies: number; - LeftTee: number; - NewLine: number; - NoBreak: number; - NotLess: number; - Omicron: number; - OverBar: number; - Product: number; - UpArrow: number; - Uparrow: number; - Upsilon: number; - alefsym: number; - angrtvb: number; - angzarr: number; - asympeq: number; - backsim: number; - because: number; - bemptyv: number; - between: number; - bigcirc: number; - bigodot: number; - bigstar: number; - boxplus: number; - ccupssm: number; - cemptyv: number; - cirscir: number; - coloneq: number; - congdot: number; - cudarrl: number; - cudarrr: number; - cularrp: number; - curarrm: number; - dbkarow: number; - ddagger: number; - ddotseq: number; - demptyv: number; - diamond: number; - digamma: number; - dotplus: number; - dwangle: number; - epsilon: number; - eqcolon: number; - equivDD: number; - gesdoto: number; - gtquest: number; - gtrless: number; - harrcir: number; - intprod: number; - isindot: number; - larrbfs: number; - larrsim: number; - lbrksld: number; - lbrkslu: number; - ldrdhar: number; - lesdoto: number; - lessdot: number; - lessgtr: number; - lesssim: number; - lotimes: number; - lozenge: number; - ltquest: number; - luruhar: number; - maltese: number; - minusdu: number; - napprox: number; - natural: number; - nearrow: number; - nexists: number; - notinva: number; - notinvb: number; - notinvc: number; - notniva: number; - notnivb: number; - notnivc: number; - npolint: number; - nsqsube: number; - nsqsupe: number; - nvinfin: number; - nwarrow: number; - olcross: number; - omicron: number; - orderof: number; - orslope: number; - pertenk: number; - planckh: number; - pluscir: number; - plussim: number; - plustwo: number; - precsim: number; - quatint: number; - questeq: number; - rarrbfs: number; - rarrsim: number; - rbrksld: number; - rbrkslu: number; - rdldhar: number; - realine: number; - rotimes: number; - ruluhar: number; - searrow: number; - simplus: number; - simrarr: number; - subedot: number; - submult: number; - subplus: number; - subrarr: number; - succsim: number; - supdsub: number; - supedot: number; - suphsub: number; - suplarr: number; - supmult: number; - supplus: number; - swarrow: number; - topfork: number; - triplus: number; - tritime: number; - uparrow: number; - upsilon: number; - uwangle: number; - vzigzag: number; - zigrarr: number; - Aacute: number; - Abreve: number; - Agrave: number; - Assign: number; - Atilde: number; - Barwed: number; - Bumpeq: number; - Cacute: number; - Ccaron: number; - Ccedil: number; - Colone: number; - Conint: number; - CupCap: number; - Dagger: number; - Dcaron: number; - DotDot: number; - Dstrok: number; - Eacute: number; - Ecaron: number; - Egrave: number; - Exists: number; - ForAll: number; - Gammad: number; - Gbreve: number; - Gcedil: number; - HARDcy: number; - Hstrok: number; - Iacute: number; - Igrave: number; - Itilde: number; - Jsercy: number; - Kcedil: number; - Lacute: number; - Lambda: number; - Lcaron: number; - Lcedil: number; - Lmidot: number; - Lstrok: number; - Nacute: number; - Ncaron: number; - Ncedil: number; - Ntilde: number; - Oacute: number; - Odblac: number; - Ograve: number; - Oslash: number; - Otilde: number; - Otimes: number; - Racute: number; - Rarrtl: number; - Rcaron: number; - Rcedil: number; - SHCHcy: number; - SOFTcy: number; - Sacute: number; - Scaron: number; - Scedil: number; - Square: number; - Subset: number; - Supset: number; - Tcaron: number; - Tcedil: number; - Tstrok: number; - Uacute: number; - Ubreve: number; - Udblac: number; - Ugrave: number; - Utilde: number; - Vdashl: number; - Verbar: number; - Vvdash: number; - Yacute: number; - Zacute: number; - Zcaron: number; - aacute: number; - abreve: number; - agrave: number; - andand: number; - angmsd: number; - angsph: number; - apacir: number; - approx: number; - atilde: number; - barvee: number; - barwed: number; - becaus: number; - bernou: number; - bigcap: number; - bigcup: number; - bigvee: number; - bkarow: number; - bottom: number; - bowtie: number; - boxbox: number; - bprime: number; - brvbar: number; - bullet: number; - bumpeq: number; - cacute: number; - capand: number; - capcap: number; - capcup: number; - capdot: number; - ccaron: number; - ccedil: number; - circeq: number; - cirmid: number; - colone: number; - commat: number; - compfn: number; - conint: number; - coprod: number; - copysr: number; - cularr: number; - cupcap: number; - cupcup: number; - cupdot: number; - curarr: number; - curren: number; - cylcty: number; - dagger: number; - daleth: number; - dcaron: number; - dfisht: number; - divide: number; - divonx: number; - dlcorn: number; - dlcrop: number; - dollar: number; - drcorn: number; - drcrop: number; - dstrok: number; - eacute: number; - easter: number; - ecaron: number; - ecolon: number; - egrave: number; - egsdot: number; - elsdot: number; - emptyv: number; - emsp13: number; - emsp14: number; - eparsl: number; - eqcirc: number; - equals: number; - equest: number; - female: number; - ffilig: number; - ffllig: number; - forall: number; - frac12: number; - frac13: number; - frac14: number; - frac15: number; - frac16: number; - frac18: number; - frac23: number; - frac25: number; - frac34: number; - frac35: number; - frac38: number; - frac45: number; - frac56: number; - frac58: number; - frac78: number; - gacute: number; - gammad: number; - gbreve: number; - gesdot: number; - gesles: number; - gtlPar: number; - gtrarr: number; - gtrdot: number; - gtrsim: number; - hairsp: number; - hamilt: number; - hardcy: number; - hearts: number; - hellip: number; - hercon: number; - homtht: number; - horbar: number; - hslash: number; - hstrok: number; - hybull: number; - hyphen: number; - iacute: number; - igrave: number; - iiiint: number; - iinfin: number; - incare: number; - inodot: number; - intcal: number; - iquest: number; - isinsv: number; - itilde: number; - jsercy: number; - kappav: number; - kcedil: number; - kgreen: number; - lAtail: number; - lacute: number; - lagran: number; - lambda: number; - langle: number; - larrfs: number; - larrhk: number; - larrlp: number; - larrpl: number; - larrtl: number; - latail: number; - lbrace: number; - lbrack: number; - lcaron: number; - lcedil: number; - ldquor: number; - lesdot: number; - lesges: number; - lfisht: number; - lfloor: number; - lharul: number; - llhard: number; - lmidot: number; - lmoust: number; - loplus: number; - lowast: number; - lowbar: number; - lparlt: number; - lrhard: number; - lsaquo: number; - lsquor: number; - lstrok: number; - lthree: number; - ltimes: number; - ltlarr: number; - ltrPar: number; - mapsto: number; - marker: number; - mcomma: number; - midast: number; - midcir: number; - middot: number; - minusb: number; - minusd: number; - mnplus: number; - models: number; - mstpos: number; - nVDash: number; - nVdash: number; - nacute: number; - ncaron: number; - ncedil: number; - nearhk: number; - nequiv: number; - nesear: number; - nexist: number; - nltrie: number; - nprcue: number; - nrtrie: number; - nsccue: number; - nsimeq: number; - ntilde: number; - numero: number; - nvDash: number; - nvHarr: number; - nvdash: number; - nvlArr: number; - nvrArr: number; - nwarhk: number; - nwnear: number; - oacute: number; - odblac: number; - odsold: number; - ograve: number; - ominus: number; - origof: number; - oslash: number; - otilde: number; - otimes: number; - parsim: number; - percnt: number; - period: number; - permil: number; - phmmat: number; - planck: number; - plankv: number; - plusdo: number; - plusdu: number; - plusmn: number; - preceq: number; - primes: number; - prnsim: number; - propto: number; - prurel: number; - puncsp: number; - qprime: number; - rAtail: number; - racute: number; - rangle: number; - rarrap: number; - rarrfs: number; - rarrhk: number; - rarrlp: number; - rarrpl: number; - rarrtl: number; - ratail: number; - rbrace: number; - rbrack: number; - rcaron: number; - rcedil: number; - rdquor: number; - rfisht: number; - rfloor: number; - rharul: number; - rmoust: number; - roplus: number; - rpargt: number; - rsaquo: number; - rsquor: number; - rthree: number; - rtimes: number; - sacute: number; - scaron: number; - scedil: number; - scnsim: number; - searhk: number; - seswar: number; - sfrown: number; - shchcy: number; - sigmaf: number; - sigmav: number; - simdot: number; - smashp: number; - softcy: number; - solbar: number; - spades: number; - sqsube: number; - sqsupe: number; - square: number; - squarf: number; - ssetmn: number; - ssmile: number; - sstarf: number; - subdot: number; - subset: number; - subsim: number; - subsub: number; - subsup: number; - succeq: number; - supdot: number; - supset: number; - supsim: number; - supsub: number; - supsup: number; - swarhk: number; - swnwar: number; - target: number; - tcaron: number; - tcedil: number; - telrec: number; - there4: number; - thetav: number; - thinsp: number; - thksim: number; - timesb: number; - timesd: number; - topbot: number; - topcir: number; - tprime: number; - tridot: number; - tstrok: number; - uacute: number; - ubreve: number; - udblac: number; - ufisht: number; - ugrave: number; - ulcorn: number; - ulcrop: number; - urcorn: number; - urcrop: number; - utilde: number; - vangrt: number; - varphi: number; - varrho: number; - veebar: number; - vellip: number; - verbar: number; - wedbar: number; - wedgeq: number; - weierp: number; - wreath: number; - xoplus: number; - xotime: number; - xsqcup: number; - xuplus: number; - xwedge: number; - yacute: number; - zacute: number; - zcaron: number; - zeetrf: number; - AElig: number; - Acirc: number; - Alpha: number; - Amacr: number; - Aogon: number; - Aring: number; - Breve: number; - Ccirc: number; - Colon: number; - Cross: number; - Dashv: number; - Delta: number; - Ecirc: number; - Emacr: number; - Eogon: number; - Equal: number; - Gamma: number; - Gcirc: number; - Hacek: number; - Hcirc: number; - IJlig: number; - Icirc: number; - Imacr: number; - Iogon: number; - Iukcy: number; - Jcirc: number; - Jukcy: number; - Kappa: number; - OElig: number; - Ocirc: number; - Omacr: number; - Omega: number; - Prime: number; - RBarr: number; - Scirc: number; - Sigma: number; - THORN: number; - TRADE: number; - TSHcy: number; - Theta: number; - Tilde: number; - Ubrcy: number; - Ucirc: number; - Umacr: number; - Union: number; - Uogon: number; - UpTee: number; - Uring: number; - VDash: number; - Vdash: number; - Wcirc: number; - Wedge: number; - Ycirc: number; - acirc: number; - acute: number; - aelig: number; - aleph: number; - alpha: number; - amacr: number; - amalg: number; - angle: number; - angrt: number; - angst: number; - aogon: number; - aring: number; - asymp: number; - awint: number; - bcong: number; - bdquo: number; - bepsi: number; - blank: number; - blk12: number; - blk14: number; - blk34: number; - block: number; - boxDL: number; - boxDR: number; - boxDl: number; - boxDr: number; - boxHD: number; - boxHU: number; - boxHd: number; - boxHu: number; - boxUL: number; - boxUR: number; - boxUl: number; - boxUr: number; - boxVH: number; - boxVL: number; - boxVR: number; - boxVh: number; - boxVl: number; - boxVr: number; - boxdL: number; - boxdR: number; - boxdl: number; - boxdr: number; - boxhD: number; - boxhU: number; - boxhd: number; - boxhu: number; - boxuL: number; - boxuR: number; - boxul: number; - boxur: number; - boxvH: number; - boxvL: number; - boxvR: number; - boxvh: number; - boxvl: number; - boxvr: number; - breve: number; - bsemi: number; - bsime: number; - bsolb: number; - bumpE: number; - bumpe: number; - caret: number; - caron: number; - ccaps: number; - ccirc: number; - ccups: number; - cedil: number; - check: number; - clubs: number; - colon: number; - comma: number; - crarr: number; - cross: number; - csube: number; - csupe: number; - ctdot: number; - cuepr: number; - cuesc: number; - cupor: number; - cuvee: number; - cuwed: number; - cwint: number; - dashv: number; - dblac: number; - ddarr: number; - delta: number; - dharl: number; - dharr: number; - diams: number; - disin: number; - doteq: number; - dtdot: number; - dtrif: number; - duarr: number; - duhar: number; - eDDot: number; - ecirc: number; - efDot: number; - emacr: number; - empty: number; - eogon: number; - eplus: number; - epsiv: number; - eqsim: number; - equiv: number; - erDot: number; - erarr: number; - esdot: number; - exist: number; - fflig: number; - filig: number; - fllig: number; - fltns: number; - forkv: number; - frasl: number; - frown: number; - gamma: number; - gcirc: number; - gescc: number; - gimel: number; - gneqq: number; - gnsim: number; - grave: number; - gsime: number; - gsiml: number; - gtcir: number; - gtdot: number; - harrw: number; - hcirc: number; - hoarr: number; - icirc: number; - iexcl: number; - iiint: number; - iiota: number; - ijlig: number; - imacr: number; - image: number; - imath: number; - imped: number; - infin: number; - iogon: number; - iprod: number; - isinE: number; - isins: number; - isinv: number; - iukcy: number; - jcirc: number; - jmath: number; - jukcy: number; - kappa: number; - lAarr: number; - lBarr: number; - langd: number; - laquo: number; - larrb: number; - lbarr: number; - lbbrk: number; - lbrke: number; - lceil: number; - ldquo: number; - lescc: number; - lhard: number; - lharu: number; - lhblk: number; - llarr: number; - lltri: number; - lneqq: number; - lnsim: number; - loang: number; - loarr: number; - lobrk: number; - lopar: number; - lrarr: number; - lrhar: number; - lrtri: number; - lsime: number; - lsimg: number; - lsquo: number; - ltcir: number; - ltdot: number; - ltrie: number; - ltrif: number; - mDDot: number; - mdash: number; - micro: number; - minus: number; - mumap: number; - nabla: number; - napos: number; - natur: number; - ncong: number; - ndash: number; - neArr: number; - nearr: number; - ngsim: number; - nhArr: number; - nharr: number; - nhpar: number; - nlArr: number; - nlarr: number; - nless: number; - nlsim: number; - nltri: number; - notin: number; - notni: number; - nprec: number; - nrArr: number; - nrarr: number; - nrtri: number; - nsime: number; - nsmid: number; - nspar: number; - nsube: number; - nsucc: number; - nsupe: number; - numsp: number; - nwArr: number; - nwarr: number; - ocirc: number; - odash: number; - oelig: number; - ofcir: number; - ohbar: number; - olarr: number; - olcir: number; - oline: number; - omacr: number; - omega: number; - operp: number; - oplus: number; - orarr: number; - order: number; - ovbar: number; - parsl: number; - phone: number; - plusb: number; - pluse: number; - pound: number; - prcue: number; - prime: number; - prnap: number; - prsim: number; - quest: number; - rAarr: number; - rBarr: number; - radic: number; - rangd: number; - range: number; - raquo: number; - rarrb: number; - rarrc: number; - rarrw: number; - ratio: number; - rbarr: number; - rbbrk: number; - rbrke: number; - rceil: number; - rdquo: number; - reals: number; - rhard: number; - rharu: number; - rlarr: number; - rlhar: number; - rnmid: number; - roang: number; - roarr: number; - robrk: number; - ropar: number; - rrarr: number; - rsquo: number; - rtrie: number; - rtrif: number; - sbquo: number; - sccue: number; - scirc: number; - scnap: number; - scsim: number; - sdotb: number; - sdote: number; - seArr: number; - searr: number; - setmn: number; - sharp: number; - sigma: number; - simeq: number; - simgE: number; - simlE: number; - simne: number; - slarr: number; - smile: number; - sqcap: number; - sqcup: number; - sqsub: number; - sqsup: number; - srarr: number; - starf: number; - strns: number; - subnE: number; - subne: number; - supnE: number; - supne: number; - swArr: number; - swarr: number; - szlig: number; - theta: number; - thkap: number; - thorn: number; - tilde: number; - times: number; - trade: number; - trisb: number; - tshcy: number; - twixt: number; - ubrcy: number; - ucirc: number; - udarr: number; - udhar: number; - uharl: number; - uharr: number; - uhblk: number; - ultri: number; - umacr: number; - uogon: number; - uplus: number; - upsih: number; - uring: number; - urtri: number; - utdot: number; - utrif: number; - uuarr: number; - vBarv: number; - vDash: number; - varpi: number; - vdash: number; - veeeq: number; - vltri: number; - vprop: number; - vrtri: number; - wcirc: number; - wedge: number; - xcirc: number; - xdtri: number; - xhArr: number; - xharr: number; - xlArr: number; - xlarr: number; - xodot: number; - xrArr: number; - xrarr: number; - xutri: number; - ycirc: number; - Aopf: number; - Ascr: number; - Auml: number; - Barv: number; - Beta: number; - Bopf: number; - Bscr: number; - CHcy: number; - COPY: number; - Cdot: number; - Copf: number; - Cscr: number; - DJcy: number; - DScy: number; - DZcy: number; - Darr: number; - Dopf: number; - Dscr: number; - Edot: number; - Eopf: number; - Escr: number; - Esim: number; - Euml: number; - Fopf: number; - Fscr: number; - GJcy: number; - Gdot: number; - Gopf: number; - Gscr: number; - Hopf: number; - Hscr: number; - IEcy: number; - IOcy: number; - Idot: number; - Iopf: number; - Iota: number; - Iscr: number; - Iuml: number; - Jopf: number; - Jscr: number; - KHcy: number; - KJcy: number; - Kopf: number; - Kscr: number; - LJcy: number; - Lang: number; - Larr: number; - Lopf: number; - Lscr: number; - Mopf: number; - Mscr: number; - NJcy: number; - Nopf: number; - Nscr: number; - Oopf: number; - Oscr: number; - Ouml: number; - Popf: number; - Pscr: number; - QUOT: number; - Qopf: number; - Qscr: number; - Rang: number; - Rarr: number; - Ropf: number; - Rscr: number; - SHcy: number; - Sopf: number; - Sqrt: number; - Sscr: number; - Star: number; - TScy: number; - Topf: number; - Tscr: number; - Uarr: number; - Uopf: number; - Upsi: number; - Uscr: number; - Uuml: number; - Vbar: number; - Vert: number; - Vopf: number; - Vscr: number; - Wopf: number; - Wscr: number; - Xopf: number; - Xscr: number; - YAcy: number; - YIcy: number; - YUcy: number; - Yopf: number; - Yscr: number; - Yuml: number; - ZHcy: number; - Zdot: number; - Zeta: number; - Zopf: number; - Zscr: number; - andd: number; - andv: number; - ange: number; - aopf: number; - apid: number; - apos: number; - ascr: number; - auml: number; - bNot: number; - bbrk: number; - beta: number; - beth: number; - bnot: number; - bopf: number; - boxH: number; - boxV: number; - boxh: number; - boxv: number; - bscr: number; - bsim: number; - bsol: number; - bull: number; - bump: number; - cdot: number; - cent: number; - chcy: number; - cirE: number; - circ: number; - cire: number; - comp: number; - cong: number; - copf: number; - copy: number; - cscr: number; - csub: number; - csup: number; - dArr: number; - dHar: number; - darr: number; - dash: number; - diam: number; - djcy: number; - dopf: number; - dscr: number; - dscy: number; - dsol: number; - dtri: number; - dzcy: number; - eDot: number; - ecir: number; - edot: number; - emsp: number; - ensp: number; - eopf: number; - epar: number; - epsi: number; - escr: number; - esim: number; - euml: number; - euro: number; - excl: number; - flat: number; - fnof: number; - fopf: number; - fork: number; - fscr: number; - gdot: number; - geqq: number; - gjcy: number; - gnap: number; - gneq: number; - gopf: number; - gscr: number; - gsim: number; - gtcc: number; - hArr: number; - half: number; - harr: number; - hbar: number; - hopf: number; - hscr: number; - iecy: number; - imof: number; - iocy: number; - iopf: number; - iota: number; - iscr: number; - isin: number; - iuml: number; - jopf: number; - jscr: number; - khcy: number; - kjcy: number; - kopf: number; - kscr: number; - lArr: number; - lHar: number; - lang: number; - larr: number; - late: number; - lcub: number; - ldca: number; - ldsh: number; - leqq: number; - ljcy: number; - lnap: number; - lneq: number; - lopf: number; - lozf: number; - lpar: number; - lscr: number; - lsim: number; - lsqb: number; - ltcc: number; - ltri: number; - macr: number; - male: number; - malt: number; - mlcp: number; - mldr: number; - mopf: number; - mscr: number; - nbsp: number; - ncap: number; - ncup: number; - ngeq: number; - ngtr: number; - nisd: number; - njcy: number; - nldr: number; - nleq: number; - nmid: number; - nopf: number; - npar: number; - nscr: number; - nsim: number; - nsub: number; - nsup: number; - ntgl: number; - ntlg: number; - oast: number; - ocir: number; - odiv: number; - odot: number; - ogon: number; - oint: number; - omid: number; - oopf: number; - opar: number; - ordf: number; - ordm: number; - oror: number; - oscr: number; - osol: number; - ouml: number; - para: number; - part: number; - perp: number; - phiv: number; - plus: number; - popf: number; - prap: number; - prec: number; - prnE: number; - prod: number; - prop: number; - pscr: number; - qint: number; - qopf: number; - qscr: number; - quot: number; - rArr: number; - rHar: number; - race: number; - rang: number; - rarr: number; - rcub: number; - rdca: number; - rdsh: number; - real: number; - rect: number; - rhov: number; - ring: number; - ropf: number; - rpar: number; - rscr: number; - rsqb: number; - rtri: number; - scap: number; - scnE: number; - sdot: number; - sect: number; - semi: number; - sext: number; - shcy: number; - sime: number; - simg: number; - siml: number; - smid: number; - smte: number; - solb: number; - sopf: number; - spar: number; - squf: number; - sscr: number; - star: number; - subE: number; - sube: number; - succ: number; - sung: number; - sup1: number; - sup2: number; - sup3: number; - supE: number; - supe: number; - tbrk: number; - tdot: number; - tint: number; - toea: number; - topf: number; - tosa: number; - trie: number; - tscr: number; - tscy: number; - uArr: number; - uHar: number; - uarr: number; - uopf: number; - upsi: number; - uscr: number; - utri: number; - uuml: number; - vArr: number; - vBar: number; - varr: number; - vert: number; - vopf: number; - vscr: number; - wopf: number; - wscr: number; - xcap: number; - xcup: number; - xmap: number; - xnis: number; - xopf: number; - xscr: number; - xvee: number; - yacy: number; - yicy: number; - yopf: number; - yscr: number; - yucy: number; - yuml: number; - zdot: number; - zeta: number; - zhcy: number; - zopf: number; - zscr: number; - zwnj: number; - AMP: number; - Acy: number; - Afr: number; - And: number; - Bcy: number; - Bfr: number; - Cap: number; - Cfr: number; - Chi: number; - Cup: number; - Dcy: number; - Del: number; - Dfr: number; - Dot: number; - ENG: number; - ETH: number; - Ecy: number; - Efr: number; - Eta: number; - Fcy: number; - Ffr: number; - Gcy: number; - Gfr: number; - Hat: number; - Hfr: number; - Icy: number; - Ifr: number; - Int: number; - Jcy: number; - Jfr: number; - Kcy: number; - Kfr: number; - Lcy: number; - Lfr: number; - Lsh: number; - Map: number; - Mcy: number; - Mfr: number; - Ncy: number; - Nfr: number; - Not: number; - Ocy: number; - Ofr: number; - Pcy: number; - Pfr: number; - Phi: number; - Psi: number; - Qfr: number; - REG: number; - Rcy: number; - Rfr: number; - Rho: number; - Rsh: number; - Scy: number; - Sfr: number; - Sub: number; - Sum: number; - Sup: number; - Tab: number; - Tau: number; - Tcy: number; - Tfr: number; - Ucy: number; - Ufr: number; - Vcy: number; - Vee: number; - Vfr: number; - Wfr: number; - Xfr: number; - Ycy: number; - Yfr: number; - Zcy: number; - Zfr: number; - acd: number; - acy: number; - afr: number; - amp: number; - and: number; - ang: number; - apE: number; - ape: number; - ast: number; - bcy: number; - bfr: number; - bot: number; - cap: number; - cfr: number; - chi: number; - cir: number; - cup: number; - dcy: number; - deg: number; - dfr: number; - die: number; - div: number; - dot: number; - ecy: number; - efr: number; - egs: number; - ell: number; - els: number; - eng: number; - eta: number; - eth: number; - fcy: number; - ffr: number; - gEl: number; - gap: number; - gcy: number; - gel: number; - geq: number; - ges: number; - gfr: number; - ggg: number; - glE: number; - gla: number; - glj: number; - gnE: number; - gne: number; - hfr: number; - icy: number; - iff: number; - ifr: number; - int: number; - jcy: number; - jfr: number; - kcy: number; - kfr: number; - lEg: number; - lap: number; - lat: number; - lcy: number; - leg: number; - leq: number; - les: number; - lfr: number; - lgE: number; - lnE: number; - lne: number; - loz: number; - lrm: number; - lsh: number; - map: number; - mcy: number; - mfr: number; - mho: number; - mid: number; - nap: number; - ncy: number; - nfr: number; - nge: number; - ngt: number; - nis: number; - niv: number; - nle: number; - nlt: number; - not: number; - npr: number; - nsc: number; - num: number; - ocy: number; - ofr: number; - ogt: number; - ohm: number; - olt: number; - ord: number; - orv: number; - par: number; - pcy: number; - pfr: number; - phi: number; - piv: number; - prE: number; - pre: number; - psi: number; - qfr: number; - rcy: number; - reg: number; - rfr: number; - rho: number; - rlm: number; - rsh: number; - scE: number; - sce: number; - scy: number; - sfr: number; - shy: number; - sim: number; - smt: number; - sol: number; - squ: number; - sub: number; - sum: number; - sup: number; - tau: number; - tcy: number; - tfr: number; - top: number; - ucy: number; - ufr: number; - uml: number; - vcy: number; - vee: number; - vfr: number; - wfr: number; - xfr: number; - ycy: number; - yen: number; - yfr: number; - zcy: number; - zfr: number; - zwj: number; - DD: number; - GT: number; - Gg: number; - Gt: number; - Im: number; - LT: number; - Ll: number; - Lt: number; - Mu: number; - Nu: number; - Or: number; - Pi: number; - Pr: number; - Re: number; - Sc: number; - Xi: number; - ac: number; - af: number; - ap: number; - dd: number; - ee: number; - eg: number; - el: number; - gE: number; - ge: number; - gg: number; - gl: number; - gt: number; - ic: number; - ii: number; - in: number; - it: number; - lE: number; - le: number; - lg: number; - ll: number; - lt: number; - mp: number; - mu: number; - ne: number; - ni: number; - nu: number; - oS: number; - or: number; - pi: number; - pm: number; - pr: number; - rx: number; - sc: number; - wp: number; - wr: number; - xi: number; + CounterClockwiseContourIntegral: number; + ClockwiseContourIntegral: number; + DoubleLongLeftRightArrow: number; + DiacriticalDoubleAcute: number; + NotSquareSupersetEqual: number; + CloseCurlyDoubleQuote: number; + DoubleContourIntegral: number; + FilledVerySmallSquare: number; + NegativeVeryThinSpace: number; + NotPrecedesSlantEqual: number; + NotRightTriangleEqual: number; + NotSucceedsSlantEqual: number; + CapitalDifferentialD: number; + DoubleLeftRightArrow: number; + DoubleLongRightArrow: number; + EmptyVerySmallSquare: number; + NestedGreaterGreater: number; + NotDoubleVerticalBar: number; + NotLeftTriangleEqual: number; + NotSquareSubsetEqual: number; + OpenCurlyDoubleQuote: number; + ReverseUpEquilibrium: number; + DoubleLongLeftArrow: number; + DownLeftRightVector: number; + LeftArrowRightArrow: number; + NegativeMediumSpace: number; + RightArrowLeftArrow: number; + SquareSupersetEqual: number; + leftrightsquigarrow: number; + DownRightTeeVector: number; + DownRightVectorBar: number; + LongLeftRightArrow: number; + Longleftrightarrow: number; + NegativeThickSpace: number; + PrecedesSlantEqual: number; + ReverseEquilibrium: number; + RightDoubleBracket: number; + RightDownTeeVector: number; + RightDownVectorBar: number; + RightTriangleEqual: number; + SquareIntersection: number; + SucceedsSlantEqual: number; + blacktriangleright: number; + longleftrightarrow: number; + DoubleUpDownArrow: number; + DoubleVerticalBar: number; + DownLeftTeeVector: number; + DownLeftVectorBar: number; + FilledSmallSquare: number; + GreaterSlantEqual: number; + LeftDoubleBracket: number; + LeftDownTeeVector: number; + LeftDownVectorBar: number; + LeftTriangleEqual: number; + NegativeThinSpace: number; + NotReverseElement: number; + NotTildeFullEqual: number; + RightAngleBracket: number; + RightUpDownVector: number; + SquareSubsetEqual: number; + VerticalSeparator: number; + blacktriangledown: number; + blacktriangleleft: number; + leftrightharpoons: number; + rightleftharpoons: number; + twoheadrightarrow: number; + DiacriticalAcute: number; + DiacriticalGrave: number; + DiacriticalTilde: number; + DoubleRightArrow: number; + DownArrowUpArrow: number; + EmptySmallSquare: number; + GreaterEqualLess: number; + GreaterFullEqual: number; + LeftAngleBracket: number; + LeftUpDownVector: number; + LessEqualGreater: number; + NonBreakingSpace: number; + NotRightTriangle: number; + NotSupersetEqual: number; + RightTriangleBar: number; + RightUpTeeVector: number; + RightUpVectorBar: number; + UnderParenthesis: number; + UpArrowDownArrow: number; + circlearrowright: number; + downharpoonright: number; + ntrianglerighteq: number; + rightharpoondown: number; + rightrightarrows: number; + twoheadleftarrow: number; + vartriangleright: number; + CloseCurlyQuote: number; + ContourIntegral: number; + DoubleDownArrow: number; + DoubleLeftArrow: number; + DownRightVector: number; + LeftRightVector: number; + LeftTriangleBar: number; + LeftUpTeeVector: number; + LeftUpVectorBar: number; + LowerRightArrow: number; + NotGreaterEqual: number; + NotGreaterTilde: number; + NotLeftTriangle: number; + OverParenthesis: number; + RightDownVector: number; + ShortRightArrow: number; + UpperRightArrow: number; + bigtriangledown: number; + circlearrowleft: number; + curvearrowright: number; + downharpoonleft: number; + leftharpoondown: number; + leftrightarrows: number; + nLeftrightarrow: number; + nleftrightarrow: number; + ntrianglelefteq: number; + rightleftarrows: number; + rightsquigarrow: number; + rightthreetimes: number; + straightepsilon: number; + trianglerighteq: number; + vartriangleleft: number; + DiacriticalDot: number; + DoubleRightTee: number; + DownLeftVector: number; + GreaterGreater: number; + HorizontalLine: number; + InvisibleComma: number; + InvisibleTimes: number; + LeftDownVector: number; + LeftRightArrow: number; + Leftrightarrow: number; + LessSlantEqual: number; + LongRightArrow: number; + Longrightarrow: number; + LowerLeftArrow: number; + NestedLessLess: number; + NotGreaterLess: number; + NotLessGreater: number; + NotSubsetEqual: number; + NotVerticalBar: number; + OpenCurlyQuote: number; + ReverseElement: number; + RightTeeVector: number; + RightVectorBar: number; + ShortDownArrow: number; + ShortLeftArrow: number; + SquareSuperset: number; + TildeFullEqual: number; + UpperLeftArrow: number; + ZeroWidthSpace: number; + curvearrowleft: number; + doublebarwedge: number; + downdownarrows: number; + hookrightarrow: number; + leftleftarrows: number; + leftrightarrow: number; + leftthreetimes: number; + longrightarrow: number; + looparrowright: number; + nshortparallel: number; + ntriangleright: number; + rightarrowtail: number; + rightharpoonup: number; + trianglelefteq: number; + upharpoonright: number; + ApplyFunction: number; + DifferentialD: number; + DoubleLeftTee: number; + DoubleUpArrow: number; + LeftTeeVector: number; + LeftVectorBar: number; + LessFullEqual: number; + LongLeftArrow: number; + Longleftarrow: number; + NotTildeEqual: number; + NotTildeTilde: number; + Poincareplane: number; + PrecedesEqual: number; + PrecedesTilde: number; + RightArrowBar: number; + RightTeeArrow: number; + RightTriangle: number; + RightUpVector: number; + SucceedsEqual: number; + SucceedsTilde: number; + SupersetEqual: number; + UpEquilibrium: number; + VerticalTilde: number; + VeryThinSpace: number; + bigtriangleup: number; + blacktriangle: number; + divideontimes: number; + fallingdotseq: number; + hookleftarrow: number; + leftarrowtail: number; + leftharpoonup: number; + longleftarrow: number; + looparrowleft: number; + measuredangle: number; + ntriangleleft: number; + shortparallel: number; + smallsetminus: number; + triangleright: number; + upharpoonleft: number; + DownArrowBar: number; + DownTeeArrow: number; + ExponentialE: number; + GreaterEqual: number; + GreaterTilde: number; + HilbertSpace: number; + HumpDownHump: number; + Intersection: number; + LeftArrowBar: number; + LeftTeeArrow: number; + LeftTriangle: number; + LeftUpVector: number; + NotCongruent: number; + NotLessEqual: number; + NotLessTilde: number; + Proportional: number; + RightCeiling: number; + RoundImplies: number; + ShortUpArrow: number; + SquareSubset: number; + UnderBracket: number; + VerticalLine: number; + blacklozenge: number; + exponentiale: number; + risingdotseq: number; + triangledown: number; + triangleleft: number; + CircleMinus: number; + CircleTimes: number; + Equilibrium: number; + GreaterLess: number; + LeftCeiling: number; + LessGreater: number; + MediumSpace: number; + NotPrecedes: number; + NotSucceeds: number; + OverBracket: number; + RightVector: number; + Rrightarrow: number; + RuleDelayed: number; + SmallCircle: number; + SquareUnion: number; + SubsetEqual: number; + UpDownArrow: number; + Updownarrow: number; + VerticalBar: number; + backepsilon: number; + blacksquare: number; + circledcirc: number; + circleddash: number; + curlyeqprec: number; + curlyeqsucc: number; + diamondsuit: number; + eqslantless: number; + expectation: number; + nRightarrow: number; + nrightarrow: number; + preccurlyeq: number; + precnapprox: number; + quaternions: number; + straightphi: number; + succcurlyeq: number; + succnapprox: number; + thickapprox: number; + updownarrow: number; + Bernoullis: number; + CirclePlus: number; + EqualTilde: number; + Fouriertrf: number; + ImaginaryI: number; + Laplacetrf: number; + LeftVector: number; + Lleftarrow: number; + NotElement: number; + NotGreater: number; + Proportion: number; + RightArrow: number; + RightFloor: number; + Rightarrow: number; + TildeEqual: number; + TildeTilde: number; + UnderBrace: number; + UpArrowBar: number; + UpTeeArrow: number; + circledast: number; + complement: number; + curlywedge: number; + eqslantgtr: number; + gtreqqless: number; + lessapprox: number; + lesseqqgtr: number; + lmoustache: number; + longmapsto: number; + mapstodown: number; + mapstoleft: number; + nLeftarrow: number; + nleftarrow: number; + precapprox: number; + rightarrow: number; + rmoustache: number; + sqsubseteq: number; + sqsupseteq: number; + subsetneqq: number; + succapprox: number; + supsetneqq: number; + upuparrows: number; + varepsilon: number; + varnothing: number; + Backslash: number; + CenterDot: number; + CircleDot: number; + Congruent: number; + Coproduct: number; + DoubleDot: number; + DownArrow: number; + DownBreve: number; + Downarrow: number; + HumpEqual: number; + LeftArrow: number; + LeftFloor: number; + Leftarrow: number; + LessTilde: number; + Mellintrf: number; + MinusPlus: number; + NotCupCap: number; + NotExists: number; + OverBrace: number; + PlusMinus: number; + Therefore: number; + ThinSpace: number; + TripleDot: number; + UnionPlus: number; + backprime: number; + backsimeq: number; + bigotimes: number; + centerdot: number; + checkmark: number; + complexes: number; + dotsquare: number; + downarrow: number; + gtrapprox: number; + gtreqless: number; + heartsuit: number; + leftarrow: number; + lesseqgtr: number; + nparallel: number; + nshortmid: number; + nsubseteq: number; + nsupseteq: number; + pitchfork: number; + rationals: number; + spadesuit: number; + subseteqq: number; + subsetneq: number; + supseteqq: number; + supsetneq: number; + therefore: number; + triangleq: number; + varpropto: number; + DDotrahd: number; + DotEqual: number; + Integral: number; + LessLess: number; + NotEqual: number; + NotTilde: number; + PartialD: number; + Precedes: number; + RightTee: number; + Succeeds: number; + SuchThat: number; + Superset: number; + Uarrocir: number; + UnderBar: number; + andslope: number; + angmsdaa: number; + angmsdab: number; + angmsdac: number; + angmsdad: number; + angmsdae: number; + angmsdaf: number; + angmsdag: number; + angmsdah: number; + angrtvbd: number; + approxeq: number; + awconint: number; + backcong: number; + barwedge: number; + bbrktbrk: number; + bigoplus: number; + bigsqcup: number; + biguplus: number; + bigwedge: number; + boxminus: number; + boxtimes: number; + capbrcup: number; + circledR: number; + circledS: number; + cirfnint: number; + clubsuit: number; + cupbrcap: number; + curlyvee: number; + cwconint: number; + doteqdot: number; + dotminus: number; + drbkarow: number; + dzigrarr: number; + elinters: number; + emptyset: number; + eqvparsl: number; + fpartint: number; + geqslant: number; + gesdotol: number; + gnapprox: number; + hksearow: number; + hkswarow: number; + imagline: number; + imagpart: number; + infintie: number; + integers: number; + intercal: number; + intlarhk: number; + laemptyv: number; + ldrushar: number; + leqslant: number; + lesdotor: number; + llcorner: number; + lnapprox: number; + lrcorner: number; + lurdshar: number; + mapstoup: number; + multimap: number; + naturals: number; + otimesas: number; + parallel: number; + plusacir: number; + pointint: number; + precneqq: number; + precnsim: number; + profalar: number; + profline: number; + profsurf: number; + raemptyv: number; + realpart: number; + rppolint: number; + rtriltri: number; + scpolint: number; + setminus: number; + shortmid: number; + smeparsl: number; + sqsubset: number; + sqsupset: number; + subseteq: number; + succneqq: number; + succnsim: number; + supseteq: number; + thetasym: number; + thicksim: number; + timesbar: number; + triangle: number; + triminus: number; + trpezium: number; + ulcorner: number; + urcorner: number; + varkappa: number; + varsigma: number; + vartheta: number; + Because: number; + Cayleys: number; + Cconint: number; + Cedilla: number; + Diamond: number; + DownTee: number; + Element: number; + Epsilon: number; + Implies: number; + LeftTee: number; + NewLine: number; + NoBreak: number; + NotLess: number; + Omicron: number; + OverBar: number; + Product: number; + UpArrow: number; + Uparrow: number; + Upsilon: number; + alefsym: number; + angrtvb: number; + angzarr: number; + asympeq: number; + backsim: number; + because: number; + bemptyv: number; + between: number; + bigcirc: number; + bigodot: number; + bigstar: number; + boxplus: number; + ccupssm: number; + cemptyv: number; + cirscir: number; + coloneq: number; + congdot: number; + cudarrl: number; + cudarrr: number; + cularrp: number; + curarrm: number; + dbkarow: number; + ddagger: number; + ddotseq: number; + demptyv: number; + diamond: number; + digamma: number; + dotplus: number; + dwangle: number; + epsilon: number; + eqcolon: number; + equivDD: number; + gesdoto: number; + gtquest: number; + gtrless: number; + harrcir: number; + intprod: number; + isindot: number; + larrbfs: number; + larrsim: number; + lbrksld: number; + lbrkslu: number; + ldrdhar: number; + lesdoto: number; + lessdot: number; + lessgtr: number; + lesssim: number; + lotimes: number; + lozenge: number; + ltquest: number; + luruhar: number; + maltese: number; + minusdu: number; + napprox: number; + natural: number; + nearrow: number; + nexists: number; + notinva: number; + notinvb: number; + notinvc: number; + notniva: number; + notnivb: number; + notnivc: number; + npolint: number; + nsqsube: number; + nsqsupe: number; + nvinfin: number; + nwarrow: number; + olcross: number; + omicron: number; + orderof: number; + orslope: number; + pertenk: number; + planckh: number; + pluscir: number; + plussim: number; + plustwo: number; + precsim: number; + quatint: number; + questeq: number; + rarrbfs: number; + rarrsim: number; + rbrksld: number; + rbrkslu: number; + rdldhar: number; + realine: number; + rotimes: number; + ruluhar: number; + searrow: number; + simplus: number; + simrarr: number; + subedot: number; + submult: number; + subplus: number; + subrarr: number; + succsim: number; + supdsub: number; + supedot: number; + suphsub: number; + suplarr: number; + supmult: number; + supplus: number; + swarrow: number; + topfork: number; + triplus: number; + tritime: number; + uparrow: number; + upsilon: number; + uwangle: number; + vzigzag: number; + zigrarr: number; + Aacute: number; + Abreve: number; + Agrave: number; + Assign: number; + Atilde: number; + Barwed: number; + Bumpeq: number; + Cacute: number; + Ccaron: number; + Ccedil: number; + Colone: number; + Conint: number; + CupCap: number; + Dagger: number; + Dcaron: number; + DotDot: number; + Dstrok: number; + Eacute: number; + Ecaron: number; + Egrave: number; + Exists: number; + ForAll: number; + Gammad: number; + Gbreve: number; + Gcedil: number; + HARDcy: number; + Hstrok: number; + Iacute: number; + Igrave: number; + Itilde: number; + Jsercy: number; + Kcedil: number; + Lacute: number; + Lambda: number; + Lcaron: number; + Lcedil: number; + Lmidot: number; + Lstrok: number; + Nacute: number; + Ncaron: number; + Ncedil: number; + Ntilde: number; + Oacute: number; + Odblac: number; + Ograve: number; + Oslash: number; + Otilde: number; + Otimes: number; + Racute: number; + Rarrtl: number; + Rcaron: number; + Rcedil: number; + SHCHcy: number; + SOFTcy: number; + Sacute: number; + Scaron: number; + Scedil: number; + Square: number; + Subset: number; + Supset: number; + Tcaron: number; + Tcedil: number; + Tstrok: number; + Uacute: number; + Ubreve: number; + Udblac: number; + Ugrave: number; + Utilde: number; + Vdashl: number; + Verbar: number; + Vvdash: number; + Yacute: number; + Zacute: number; + Zcaron: number; + aacute: number; + abreve: number; + agrave: number; + andand: number; + angmsd: number; + angsph: number; + apacir: number; + approx: number; + atilde: number; + barvee: number; + barwed: number; + becaus: number; + bernou: number; + bigcap: number; + bigcup: number; + bigvee: number; + bkarow: number; + bottom: number; + bowtie: number; + boxbox: number; + bprime: number; + brvbar: number; + bullet: number; + bumpeq: number; + cacute: number; + capand: number; + capcap: number; + capcup: number; + capdot: number; + ccaron: number; + ccedil: number; + circeq: number; + cirmid: number; + colone: number; + commat: number; + compfn: number; + conint: number; + coprod: number; + copysr: number; + cularr: number; + cupcap: number; + cupcup: number; + cupdot: number; + curarr: number; + curren: number; + cylcty: number; + dagger: number; + daleth: number; + dcaron: number; + dfisht: number; + divide: number; + divonx: number; + dlcorn: number; + dlcrop: number; + dollar: number; + drcorn: number; + drcrop: number; + dstrok: number; + eacute: number; + easter: number; + ecaron: number; + ecolon: number; + egrave: number; + egsdot: number; + elsdot: number; + emptyv: number; + emsp13: number; + emsp14: number; + eparsl: number; + eqcirc: number; + equals: number; + equest: number; + female: number; + ffilig: number; + ffllig: number; + forall: number; + frac12: number; + frac13: number; + frac14: number; + frac15: number; + frac16: number; + frac18: number; + frac23: number; + frac25: number; + frac34: number; + frac35: number; + frac38: number; + frac45: number; + frac56: number; + frac58: number; + frac78: number; + gacute: number; + gammad: number; + gbreve: number; + gesdot: number; + gesles: number; + gtlPar: number; + gtrarr: number; + gtrdot: number; + gtrsim: number; + hairsp: number; + hamilt: number; + hardcy: number; + hearts: number; + hellip: number; + hercon: number; + homtht: number; + horbar: number; + hslash: number; + hstrok: number; + hybull: number; + hyphen: number; + iacute: number; + igrave: number; + iiiint: number; + iinfin: number; + incare: number; + inodot: number; + intcal: number; + iquest: number; + isinsv: number; + itilde: number; + jsercy: number; + kappav: number; + kcedil: number; + kgreen: number; + lAtail: number; + lacute: number; + lagran: number; + lambda: number; + langle: number; + larrfs: number; + larrhk: number; + larrlp: number; + larrpl: number; + larrtl: number; + latail: number; + lbrace: number; + lbrack: number; + lcaron: number; + lcedil: number; + ldquor: number; + lesdot: number; + lesges: number; + lfisht: number; + lfloor: number; + lharul: number; + llhard: number; + lmidot: number; + lmoust: number; + loplus: number; + lowast: number; + lowbar: number; + lparlt: number; + lrhard: number; + lsaquo: number; + lsquor: number; + lstrok: number; + lthree: number; + ltimes: number; + ltlarr: number; + ltrPar: number; + mapsto: number; + marker: number; + mcomma: number; + midast: number; + midcir: number; + middot: number; + minusb: number; + minusd: number; + mnplus: number; + models: number; + mstpos: number; + nVDash: number; + nVdash: number; + nacute: number; + ncaron: number; + ncedil: number; + nearhk: number; + nequiv: number; + nesear: number; + nexist: number; + nltrie: number; + nprcue: number; + nrtrie: number; + nsccue: number; + nsimeq: number; + ntilde: number; + numero: number; + nvDash: number; + nvHarr: number; + nvdash: number; + nvlArr: number; + nvrArr: number; + nwarhk: number; + nwnear: number; + oacute: number; + odblac: number; + odsold: number; + ograve: number; + ominus: number; + origof: number; + oslash: number; + otilde: number; + otimes: number; + parsim: number; + percnt: number; + period: number; + permil: number; + phmmat: number; + planck: number; + plankv: number; + plusdo: number; + plusdu: number; + plusmn: number; + preceq: number; + primes: number; + prnsim: number; + propto: number; + prurel: number; + puncsp: number; + qprime: number; + rAtail: number; + racute: number; + rangle: number; + rarrap: number; + rarrfs: number; + rarrhk: number; + rarrlp: number; + rarrpl: number; + rarrtl: number; + ratail: number; + rbrace: number; + rbrack: number; + rcaron: number; + rcedil: number; + rdquor: number; + rfisht: number; + rfloor: number; + rharul: number; + rmoust: number; + roplus: number; + rpargt: number; + rsaquo: number; + rsquor: number; + rthree: number; + rtimes: number; + sacute: number; + scaron: number; + scedil: number; + scnsim: number; + searhk: number; + seswar: number; + sfrown: number; + shchcy: number; + sigmaf: number; + sigmav: number; + simdot: number; + smashp: number; + softcy: number; + solbar: number; + spades: number; + sqsube: number; + sqsupe: number; + square: number; + squarf: number; + ssetmn: number; + ssmile: number; + sstarf: number; + subdot: number; + subset: number; + subsim: number; + subsub: number; + subsup: number; + succeq: number; + supdot: number; + supset: number; + supsim: number; + supsub: number; + supsup: number; + swarhk: number; + swnwar: number; + target: number; + tcaron: number; + tcedil: number; + telrec: number; + there4: number; + thetav: number; + thinsp: number; + thksim: number; + timesb: number; + timesd: number; + topbot: number; + topcir: number; + tprime: number; + tridot: number; + tstrok: number; + uacute: number; + ubreve: number; + udblac: number; + ufisht: number; + ugrave: number; + ulcorn: number; + ulcrop: number; + urcorn: number; + urcrop: number; + utilde: number; + vangrt: number; + varphi: number; + varrho: number; + veebar: number; + vellip: number; + verbar: number; + wedbar: number; + wedgeq: number; + weierp: number; + wreath: number; + xoplus: number; + xotime: number; + xsqcup: number; + xuplus: number; + xwedge: number; + yacute: number; + zacute: number; + zcaron: number; + zeetrf: number; + AElig: number; + Acirc: number; + Alpha: number; + Amacr: number; + Aogon: number; + Aring: number; + Breve: number; + Ccirc: number; + Colon: number; + Cross: number; + Dashv: number; + Delta: number; + Ecirc: number; + Emacr: number; + Eogon: number; + Equal: number; + Gamma: number; + Gcirc: number; + Hacek: number; + Hcirc: number; + IJlig: number; + Icirc: number; + Imacr: number; + Iogon: number; + Iukcy: number; + Jcirc: number; + Jukcy: number; + Kappa: number; + OElig: number; + Ocirc: number; + Omacr: number; + Omega: number; + Prime: number; + RBarr: number; + Scirc: number; + Sigma: number; + THORN: number; + TRADE: number; + TSHcy: number; + Theta: number; + Tilde: number; + Ubrcy: number; + Ucirc: number; + Umacr: number; + Union: number; + Uogon: number; + UpTee: number; + Uring: number; + VDash: number; + Vdash: number; + Wcirc: number; + Wedge: number; + Ycirc: number; + acirc: number; + acute: number; + aelig: number; + aleph: number; + alpha: number; + amacr: number; + amalg: number; + angle: number; + angrt: number; + angst: number; + aogon: number; + aring: number; + asymp: number; + awint: number; + bcong: number; + bdquo: number; + bepsi: number; + blank: number; + blk12: number; + blk14: number; + blk34: number; + block: number; + boxDL: number; + boxDR: number; + boxDl: number; + boxDr: number; + boxHD: number; + boxHU: number; + boxHd: number; + boxHu: number; + boxUL: number; + boxUR: number; + boxUl: number; + boxUr: number; + boxVH: number; + boxVL: number; + boxVR: number; + boxVh: number; + boxVl: number; + boxVr: number; + boxdL: number; + boxdR: number; + boxdl: number; + boxdr: number; + boxhD: number; + boxhU: number; + boxhd: number; + boxhu: number; + boxuL: number; + boxuR: number; + boxul: number; + boxur: number; + boxvH: number; + boxvL: number; + boxvR: number; + boxvh: number; + boxvl: number; + boxvr: number; + breve: number; + bsemi: number; + bsime: number; + bsolb: number; + bumpE: number; + bumpe: number; + caret: number; + caron: number; + ccaps: number; + ccirc: number; + ccups: number; + cedil: number; + check: number; + clubs: number; + colon: number; + comma: number; + crarr: number; + cross: number; + csube: number; + csupe: number; + ctdot: number; + cuepr: number; + cuesc: number; + cupor: number; + cuvee: number; + cuwed: number; + cwint: number; + dashv: number; + dblac: number; + ddarr: number; + delta: number; + dharl: number; + dharr: number; + diams: number; + disin: number; + doteq: number; + dtdot: number; + dtrif: number; + duarr: number; + duhar: number; + eDDot: number; + ecirc: number; + efDot: number; + emacr: number; + empty: number; + eogon: number; + eplus: number; + epsiv: number; + eqsim: number; + equiv: number; + erDot: number; + erarr: number; + esdot: number; + exist: number; + fflig: number; + filig: number; + fllig: number; + fltns: number; + forkv: number; + frasl: number; + frown: number; + gamma: number; + gcirc: number; + gescc: number; + gimel: number; + gneqq: number; + gnsim: number; + grave: number; + gsime: number; + gsiml: number; + gtcir: number; + gtdot: number; + harrw: number; + hcirc: number; + hoarr: number; + icirc: number; + iexcl: number; + iiint: number; + iiota: number; + ijlig: number; + imacr: number; + image: number; + imath: number; + imped: number; + infin: number; + iogon: number; + iprod: number; + isinE: number; + isins: number; + isinv: number; + iukcy: number; + jcirc: number; + jmath: number; + jukcy: number; + kappa: number; + lAarr: number; + lBarr: number; + langd: number; + laquo: number; + larrb: number; + lbarr: number; + lbbrk: number; + lbrke: number; + lceil: number; + ldquo: number; + lescc: number; + lhard: number; + lharu: number; + lhblk: number; + llarr: number; + lltri: number; + lneqq: number; + lnsim: number; + loang: number; + loarr: number; + lobrk: number; + lopar: number; + lrarr: number; + lrhar: number; + lrtri: number; + lsime: number; + lsimg: number; + lsquo: number; + ltcir: number; + ltdot: number; + ltrie: number; + ltrif: number; + mDDot: number; + mdash: number; + micro: number; + minus: number; + mumap: number; + nabla: number; + napos: number; + natur: number; + ncong: number; + ndash: number; + neArr: number; + nearr: number; + ngsim: number; + nhArr: number; + nharr: number; + nhpar: number; + nlArr: number; + nlarr: number; + nless: number; + nlsim: number; + nltri: number; + notin: number; + notni: number; + nprec: number; + nrArr: number; + nrarr: number; + nrtri: number; + nsime: number; + nsmid: number; + nspar: number; + nsube: number; + nsucc: number; + nsupe: number; + numsp: number; + nwArr: number; + nwarr: number; + ocirc: number; + odash: number; + oelig: number; + ofcir: number; + ohbar: number; + olarr: number; + olcir: number; + oline: number; + omacr: number; + omega: number; + operp: number; + oplus: number; + orarr: number; + order: number; + ovbar: number; + parsl: number; + phone: number; + plusb: number; + pluse: number; + pound: number; + prcue: number; + prime: number; + prnap: number; + prsim: number; + quest: number; + rAarr: number; + rBarr: number; + radic: number; + rangd: number; + range: number; + raquo: number; + rarrb: number; + rarrc: number; + rarrw: number; + ratio: number; + rbarr: number; + rbbrk: number; + rbrke: number; + rceil: number; + rdquo: number; + reals: number; + rhard: number; + rharu: number; + rlarr: number; + rlhar: number; + rnmid: number; + roang: number; + roarr: number; + robrk: number; + ropar: number; + rrarr: number; + rsquo: number; + rtrie: number; + rtrif: number; + sbquo: number; + sccue: number; + scirc: number; + scnap: number; + scsim: number; + sdotb: number; + sdote: number; + seArr: number; + searr: number; + setmn: number; + sharp: number; + sigma: number; + simeq: number; + simgE: number; + simlE: number; + simne: number; + slarr: number; + smile: number; + sqcap: number; + sqcup: number; + sqsub: number; + sqsup: number; + srarr: number; + starf: number; + strns: number; + subnE: number; + subne: number; + supnE: number; + supne: number; + swArr: number; + swarr: number; + szlig: number; + theta: number; + thkap: number; + thorn: number; + tilde: number; + times: number; + trade: number; + trisb: number; + tshcy: number; + twixt: number; + ubrcy: number; + ucirc: number; + udarr: number; + udhar: number; + uharl: number; + uharr: number; + uhblk: number; + ultri: number; + umacr: number; + uogon: number; + uplus: number; + upsih: number; + uring: number; + urtri: number; + utdot: number; + utrif: number; + uuarr: number; + vBarv: number; + vDash: number; + varpi: number; + vdash: number; + veeeq: number; + vltri: number; + vprop: number; + vrtri: number; + wcirc: number; + wedge: number; + xcirc: number; + xdtri: number; + xhArr: number; + xharr: number; + xlArr: number; + xlarr: number; + xodot: number; + xrArr: number; + xrarr: number; + xutri: number; + ycirc: number; + Aopf: number; + Ascr: number; + Auml: number; + Barv: number; + Beta: number; + Bopf: number; + Bscr: number; + CHcy: number; + COPY: number; + Cdot: number; + Copf: number; + Cscr: number; + DJcy: number; + DScy: number; + DZcy: number; + Darr: number; + Dopf: number; + Dscr: number; + Edot: number; + Eopf: number; + Escr: number; + Esim: number; + Euml: number; + Fopf: number; + Fscr: number; + GJcy: number; + Gdot: number; + Gopf: number; + Gscr: number; + Hopf: number; + Hscr: number; + IEcy: number; + IOcy: number; + Idot: number; + Iopf: number; + Iota: number; + Iscr: number; + Iuml: number; + Jopf: number; + Jscr: number; + KHcy: number; + KJcy: number; + Kopf: number; + Kscr: number; + LJcy: number; + Lang: number; + Larr: number; + Lopf: number; + Lscr: number; + Mopf: number; + Mscr: number; + NJcy: number; + Nopf: number; + Nscr: number; + Oopf: number; + Oscr: number; + Ouml: number; + Popf: number; + Pscr: number; + QUOT: number; + Qopf: number; + Qscr: number; + Rang: number; + Rarr: number; + Ropf: number; + Rscr: number; + SHcy: number; + Sopf: number; + Sqrt: number; + Sscr: number; + Star: number; + TScy: number; + Topf: number; + Tscr: number; + Uarr: number; + Uopf: number; + Upsi: number; + Uscr: number; + Uuml: number; + Vbar: number; + Vert: number; + Vopf: number; + Vscr: number; + Wopf: number; + Wscr: number; + Xopf: number; + Xscr: number; + YAcy: number; + YIcy: number; + YUcy: number; + Yopf: number; + Yscr: number; + Yuml: number; + ZHcy: number; + Zdot: number; + Zeta: number; + Zopf: number; + Zscr: number; + andd: number; + andv: number; + ange: number; + aopf: number; + apid: number; + apos: number; + ascr: number; + auml: number; + bNot: number; + bbrk: number; + beta: number; + beth: number; + bnot: number; + bopf: number; + boxH: number; + boxV: number; + boxh: number; + boxv: number; + bscr: number; + bsim: number; + bsol: number; + bull: number; + bump: number; + cdot: number; + cent: number; + chcy: number; + cirE: number; + circ: number; + cire: number; + comp: number; + cong: number; + copf: number; + copy: number; + cscr: number; + csub: number; + csup: number; + dArr: number; + dHar: number; + darr: number; + dash: number; + diam: number; + djcy: number; + dopf: number; + dscr: number; + dscy: number; + dsol: number; + dtri: number; + dzcy: number; + eDot: number; + ecir: number; + edot: number; + emsp: number; + ensp: number; + eopf: number; + epar: number; + epsi: number; + escr: number; + esim: number; + euml: number; + euro: number; + excl: number; + flat: number; + fnof: number; + fopf: number; + fork: number; + fscr: number; + gdot: number; + geqq: number; + gjcy: number; + gnap: number; + gneq: number; + gopf: number; + gscr: number; + gsim: number; + gtcc: number; + hArr: number; + half: number; + harr: number; + hbar: number; + hopf: number; + hscr: number; + iecy: number; + imof: number; + iocy: number; + iopf: number; + iota: number; + iscr: number; + isin: number; + iuml: number; + jopf: number; + jscr: number; + khcy: number; + kjcy: number; + kopf: number; + kscr: number; + lArr: number; + lHar: number; + lang: number; + larr: number; + late: number; + lcub: number; + ldca: number; + ldsh: number; + leqq: number; + ljcy: number; + lnap: number; + lneq: number; + lopf: number; + lozf: number; + lpar: number; + lscr: number; + lsim: number; + lsqb: number; + ltcc: number; + ltri: number; + macr: number; + male: number; + malt: number; + mlcp: number; + mldr: number; + mopf: number; + mscr: number; + nbsp: number; + ncap: number; + ncup: number; + ngeq: number; + ngtr: number; + nisd: number; + njcy: number; + nldr: number; + nleq: number; + nmid: number; + nopf: number; + npar: number; + nscr: number; + nsim: number; + nsub: number; + nsup: number; + ntgl: number; + ntlg: number; + oast: number; + ocir: number; + odiv: number; + odot: number; + ogon: number; + oint: number; + omid: number; + oopf: number; + opar: number; + ordf: number; + ordm: number; + oror: number; + oscr: number; + osol: number; + ouml: number; + para: number; + part: number; + perp: number; + phiv: number; + plus: number; + popf: number; + prap: number; + prec: number; + prnE: number; + prod: number; + prop: number; + pscr: number; + qint: number; + qopf: number; + qscr: number; + quot: number; + rArr: number; + rHar: number; + race: number; + rang: number; + rarr: number; + rcub: number; + rdca: number; + rdsh: number; + real: number; + rect: number; + rhov: number; + ring: number; + ropf: number; + rpar: number; + rscr: number; + rsqb: number; + rtri: number; + scap: number; + scnE: number; + sdot: number; + sect: number; + semi: number; + sext: number; + shcy: number; + sime: number; + simg: number; + siml: number; + smid: number; + smte: number; + solb: number; + sopf: number; + spar: number; + squf: number; + sscr: number; + star: number; + subE: number; + sube: number; + succ: number; + sung: number; + sup1: number; + sup2: number; + sup3: number; + supE: number; + supe: number; + tbrk: number; + tdot: number; + tint: number; + toea: number; + topf: number; + tosa: number; + trie: number; + tscr: number; + tscy: number; + uArr: number; + uHar: number; + uarr: number; + uopf: number; + upsi: number; + uscr: number; + utri: number; + uuml: number; + vArr: number; + vBar: number; + varr: number; + vert: number; + vopf: number; + vscr: number; + wopf: number; + wscr: number; + xcap: number; + xcup: number; + xmap: number; + xnis: number; + xopf: number; + xscr: number; + xvee: number; + yacy: number; + yicy: number; + yopf: number; + yscr: number; + yucy: number; + yuml: number; + zdot: number; + zeta: number; + zhcy: number; + zopf: number; + zscr: number; + zwnj: number; + AMP: number; + Acy: number; + Afr: number; + And: number; + Bcy: number; + Bfr: number; + Cap: number; + Cfr: number; + Chi: number; + Cup: number; + Dcy: number; + Del: number; + Dfr: number; + Dot: number; + ENG: number; + ETH: number; + Ecy: number; + Efr: number; + Eta: number; + Fcy: number; + Ffr: number; + Gcy: number; + Gfr: number; + Hat: number; + Hfr: number; + Icy: number; + Ifr: number; + Int: number; + Jcy: number; + Jfr: number; + Kcy: number; + Kfr: number; + Lcy: number; + Lfr: number; + Lsh: number; + Map: number; + Mcy: number; + Mfr: number; + Ncy: number; + Nfr: number; + Not: number; + Ocy: number; + Ofr: number; + Pcy: number; + Pfr: number; + Phi: number; + Psi: number; + Qfr: number; + REG: number; + Rcy: number; + Rfr: number; + Rho: number; + Rsh: number; + Scy: number; + Sfr: number; + Sub: number; + Sum: number; + Sup: number; + Tab: number; + Tau: number; + Tcy: number; + Tfr: number; + Ucy: number; + Ufr: number; + Vcy: number; + Vee: number; + Vfr: number; + Wfr: number; + Xfr: number; + Ycy: number; + Yfr: number; + Zcy: number; + Zfr: number; + acd: number; + acy: number; + afr: number; + amp: number; + and: number; + ang: number; + apE: number; + ape: number; + ast: number; + bcy: number; + bfr: number; + bot: number; + cap: number; + cfr: number; + chi: number; + cir: number; + cup: number; + dcy: number; + deg: number; + dfr: number; + die: number; + div: number; + dot: number; + ecy: number; + efr: number; + egs: number; + ell: number; + els: number; + eng: number; + eta: number; + eth: number; + fcy: number; + ffr: number; + gEl: number; + gap: number; + gcy: number; + gel: number; + geq: number; + ges: number; + gfr: number; + ggg: number; + glE: number; + gla: number; + glj: number; + gnE: number; + gne: number; + hfr: number; + icy: number; + iff: number; + ifr: number; + int: number; + jcy: number; + jfr: number; + kcy: number; + kfr: number; + lEg: number; + lap: number; + lat: number; + lcy: number; + leg: number; + leq: number; + les: number; + lfr: number; + lgE: number; + lnE: number; + lne: number; + loz: number; + lrm: number; + lsh: number; + map: number; + mcy: number; + mfr: number; + mho: number; + mid: number; + nap: number; + ncy: number; + nfr: number; + nge: number; + ngt: number; + nis: number; + niv: number; + nle: number; + nlt: number; + not: number; + npr: number; + nsc: number; + num: number; + ocy: number; + ofr: number; + ogt: number; + ohm: number; + olt: number; + ord: number; + orv: number; + par: number; + pcy: number; + pfr: number; + phi: number; + piv: number; + prE: number; + pre: number; + psi: number; + qfr: number; + rcy: number; + reg: number; + rfr: number; + rho: number; + rlm: number; + rsh: number; + scE: number; + sce: number; + scy: number; + sfr: number; + shy: number; + sim: number; + smt: number; + sol: number; + squ: number; + sub: number; + sum: number; + sup: number; + tau: number; + tcy: number; + tfr: number; + top: number; + ucy: number; + ufr: number; + uml: number; + vcy: number; + vee: number; + vfr: number; + wfr: number; + xfr: number; + ycy: number; + yen: number; + yfr: number; + zcy: number; + zfr: number; + zwj: number; + DD: number; + GT: number; + Gg: number; + Gt: number; + Im: number; + LT: number; + Ll: number; + Lt: number; + Mu: number; + Nu: number; + Or: number; + Pi: number; + Pr: number; + Re: number; + Sc: number; + Xi: number; + ac: number; + af: number; + ap: number; + dd: number; + ee: number; + eg: number; + el: number; + gE: number; + ge: number; + gg: number; + gl: number; + gt: number; + ic: number; + ii: number; + in: number; + it: number; + lE: number; + le: number; + lg: number; + ll: number; + lt: number; + mp: number; + mu: number; + ne: number; + ni: number; + nu: number; + oS: number; + or: number; + pi: number; + pm: number; + pr: number; + rx: number; + sc: number; + wp: number; + wr: number; + xi: number; }; export default _default; diff --git a/src/@types/compiler/preprocess/index.d.ts b/src/@types/compiler/preprocess/index.d.ts index f56362a7f81a..627cee97e64c 100644 --- a/src/@types/compiler/preprocess/index.d.ts +++ b/src/@types/compiler/preprocess/index.d.ts @@ -1,4 +1,8 @@ import { PreprocessorGroup, Processed } from './types'; -export default function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: { +export default function preprocess( + source: string, + preprocessor: PreprocessorGroup | PreprocessorGroup[], + options?: { filename?: string; -}): Promise; + } +): Promise; diff --git a/src/@types/compiler/preprocess/types.d.ts b/src/@types/compiler/preprocess/types.d.ts index c4a043c4111d..7f8a3dbcf0d9 100644 --- a/src/@types/compiler/preprocess/types.d.ts +++ b/src/@types/compiler/preprocess/types.d.ts @@ -1,27 +1,20 @@ import { Location } from 'locate-character'; export interface Source { - source: string; - get_location: (search: number) => Location; - file_basename: string; - filename: string; + source: string; + get_location: (search: number) => Location; + file_basename: string; + filename: string; } export interface Processed { - code: string; - map?: string | object; - dependencies?: string[]; - toString?: () => string; + code: string; + map?: string | object; + dependencies?: string[]; + toString?: () => string; } -export declare type MarkupPreprocessor = (options: { - content: string; - filename: string; -}) => Processed | Promise; -export declare type Preprocessor = (options: { - content: string; - attributes: Record; - filename?: string; -}) => Processed | Promise; +export declare type MarkupPreprocessor = (options: { content: string; filename: string }) => Processed | Promise; +export declare type Preprocessor = (options: { content: string; attributes: Record; filename?: string }) => Processed | Promise; export interface PreprocessorGroup { - markup?: MarkupPreprocessor; - style?: Preprocessor; - script?: Preprocessor; + markup?: MarkupPreprocessor; + style?: Preprocessor; + script?: Preprocessor; } diff --git a/src/@types/compiler/utils/error.d.ts b/src/@types/compiler/utils/error.d.ts index babd2bbdb959..a59c146c9455 100644 --- a/src/@types/compiler/utils/error.d.ts +++ b/src/@types/compiler/utils/error.d.ts @@ -1,8 +1,11 @@ -export default function error(message: string, props: { +export default function error( + message: string, + props: { name: string; code: string; source: string; filename: string; start: number; end?: number; -}): never; + } +): never; diff --git a/src/@types/compiler/utils/link.d.ts b/src/@types/compiler/utils/link.d.ts index e73ccbce1077..8cb0c0bb344c 100644 --- a/src/@types/compiler/utils/link.d.ts +++ b/src/@types/compiler/utils/link.d.ts @@ -1,4 +1,6 @@ -export declare function link(next: T, prev: T): void; + } +>(next: T, prev: T): void; diff --git a/src/@types/compiler/utils/mapped_code.d.ts b/src/@types/compiler/utils/mapped_code.d.ts index b6aa28971332..a6b194c8b985 100644 --- a/src/@types/compiler/utils/mapped_code.d.ts +++ b/src/@types/compiler/utils/mapped_code.d.ts @@ -2,21 +2,21 @@ import { DecodedSourceMap, RawSourceMap } from '@ampproject/remapping/dist/types import { SourceMap } from 'magic-string'; import { Source, Processed } from '../preprocess/types'; export declare type SourceLocation = { - line: number; - column: number; + line: number; + column: number; }; export declare function sourcemap_add_offset(map: DecodedSourceMap, offset: SourceLocation, source_index: number): void; export declare class MappedCode { - string: string; - map: DecodedSourceMap; - constructor(string?: string, map?: DecodedSourceMap); - /** - * concat in-place (mutable), return this (chainable) - * will also mutate the `other` object - */ - concat(other: MappedCode): MappedCode; - static from_processed(string: string, map?: DecodedSourceMap): MappedCode; - static from_source({ source, file_basename, get_location }: Source): MappedCode; + string: string; + map: DecodedSourceMap; + constructor(string?: string, map?: DecodedSourceMap); + /** + * concat in-place (mutable), return this (chainable) + * will also mutate the `other` object + */ + concat(other: MappedCode): MappedCode; + static from_processed(string: string, map?: DecodedSourceMap): MappedCode; + static from_source({ source, file_basename, get_location }: Source): MappedCode; } export declare function combine_sourcemaps(filename: string, sourcemap_list: Array): RawSourceMap; export declare function apply_preprocessor_sourcemap(filename: string, svelte_map: SourceMap, preprocessor_map_input: string | DecodedSourceMap | RawSourceMap): SourceMap; diff --git a/src/@types/compiler/utils/namespaces.d.ts b/src/@types/compiler/utils/namespaces.d.ts index 373776ef3846..aaad3886089c 100644 --- a/src/@types/compiler/utils/namespaces.d.ts +++ b/src/@types/compiler/utils/namespaces.d.ts @@ -1,9 +1,9 @@ -export declare const foreign = "https://svelte.dev/docs#svelte_options"; -export declare const html = "http://www.w3.org/1999/xhtml"; -export declare const mathml = "http://www.w3.org/1998/Math/MathML"; -export declare const svg = "http://www.w3.org/2000/svg"; -export declare const xlink = "http://www.w3.org/1999/xlink"; -export declare const xml = "http://www.w3.org/XML/1998/namespace"; -export declare const xmlns = "http://www.w3.org/2000/xmlns"; +export declare const foreign = 'https://svelte.dev/docs#svelte_options'; +export declare const html = 'http://www.w3.org/1999/xhtml'; +export declare const mathml = 'http://www.w3.org/1998/Math/MathML'; +export declare const svg = 'http://www.w3.org/2000/svg'; +export declare const xlink = 'http://www.w3.org/1999/xlink'; +export declare const xml = 'http://www.w3.org/XML/1998/namespace'; +export declare const xmlns = 'http://www.w3.org/2000/xmlns'; export declare const valid_namespaces: string[]; export declare const namespaces: Record; diff --git a/src/cli.ts b/src/cli.ts index e2ff727bd0cb..62e50f3eb406 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -14,17 +14,20 @@ type Arguments = yargs.Arguments; type cliState = 'help' | 'version' | 'dev' | 'build'; function resolveArgs(flags: Arguments): cliState { - if(flags.version) { + if (flags.version) { return 'version'; - } else if(flags.help) { + } else if (flags.help) { return 'help'; } const cmd = flags._[2]; - switch(cmd) { - case 'dev': return 'dev'; - case 'build': return 'build'; - default: return 'help'; + switch (cmd) { + case 'dev': + return 'dev'; + case 'build': + return 'build'; + default: + return 'help'; } } @@ -47,7 +50,7 @@ async function printVersion() { } async function loadConfig(rawRoot: string | undefined): Promise { - if(typeof rawRoot === 'undefined') { + if (typeof rawRoot === 'undefined') { rawRoot = process.cwd(); } @@ -55,7 +58,7 @@ async function loadConfig(rawRoot: string | undefined): Promise Promise) { const astroConfig = await loadConfig(rawRoot); - if(typeof astroConfig === 'undefined') { + if (typeof astroConfig === 'undefined') { console.error(colors.red(' An astro.config.mjs file is required.\n')); printHelp(); process.exit(1); @@ -78,14 +81,14 @@ async function runCommand(rawRoot: string, cmd: (a: AstroConfig) => Promise { - const t = process.hrtime(); - return t[0] * 1e3 + t[1] / 1e6; - } - : () => self.performance.now(); - - - +const now = + typeof process !== 'undefined' && process.hrtime + ? () => { + const t = process.hrtime(); + return t[0] * 1e3 + t[1] / 1e6; + } + : () => self.performance.now(); +function collapse_timings(timings) { + const result = {}; + timings.forEach((timing) => { + result[timing.label] = Object.assign( + { + total: timing.end - timing.start, + }, + timing.children && collapse_timings(timing.children) + ); + }); + return result; +} +class Stats { + constructor() { + this.start_time = now(); + this.stack = []; + this.current_children = this.timings = []; + } + start(label) { + const timing = { + label, + start: now(), + end: null, + children: [], + }; + this.current_children.push(timing); + this.stack.push(timing); -function collapse_timings(timings) { - const result = {}; - timings.forEach(timing => { - result[timing.label] = Object.assign({ - total: timing.end - timing.start - }, timing.children && collapse_timings(timing.children)); - }); - return result; -} + this.current_timing = timing; + this.current_children = timing.children; + } -class Stats { - - - - - - - constructor() { - this.start_time = now(); - this.stack = []; - this.current_children = this.timings = []; - } - - start(label) { - const timing = { - label, - start: now(), - end: null, - children: [] - }; - - this.current_children.push(timing); - this.stack.push(timing); - - this.current_timing = timing; - this.current_children = timing.children; - } - - stop(label) { - if (label !== this.current_timing.label) { - throw new Error(`Mismatched timing labels (expected ${this.current_timing.label}, got ${label})`); - } + stop(label) { + if (label !== this.current_timing.label) { + throw new Error(`Mismatched timing labels (expected ${this.current_timing.label}, got ${label})`); + } - this.current_timing.end = now(); - this.stack.pop(); - this.current_timing = this.stack[this.stack.length - 1]; - this.current_children = this.current_timing ? this.current_timing.children : this.timings; - } + this.current_timing.end = now(); + this.stack.pop(); + this.current_timing = this.stack[this.stack.length - 1]; + this.current_children = this.current_timing ? this.current_timing.children : this.timings; + } - render() { - const timings = Object.assign({ - total: now() - this.start_time - }, collapse_timings(this.timings)); + render() { + const timings = Object.assign( + { + total: now() - this.start_time, + }, + collapse_timings(this.timings) + ); - return { - timings - }; - } + return { + timings, + }; + } } function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; + return (module = { exports: {} }), fn(module, module.exports), module.exports; } var xhtml = { @@ -306,7 +299,7 @@ var xhtml = { or: '\u2228', cap: '\u2229', cup: '\u222A', - 'int': '\u222B', + int: '\u222B', there4: '\u2234', sim: '\u223C', cong: '\u2245', @@ -334,512 +327,500 @@ var xhtml = { spades: '\u2660', clubs: '\u2663', hearts: '\u2665', - diams: '\u2666' + diams: '\u2666', }; var acornJsx = createCommonjsModule(function (module) { + 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); + } - -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; } - return acornJsx; -} - -// Transforms JSX element name to string. + // Transforms JSX element name to string. -function getQualifiedJSXName(object) { - if (!object) - return object; + function getQualifiedJSXName(object) { + if (!object) return object; - if (object.type === 'JSXIdentifier') - return object.name; + if (object.type === 'JSXIdentifier') return object.name; - if (object.type === 'JSXNamespacedName') - return object.namespace.name + ':' + object.name.name; + if (object.type === 'JSXNamespacedName') return object.namespace.name + ':' + object.name.name; - if (object.type === 'JSXMemberExpression') - return getQualifiedJSXName(object.object) + '.' + - getQualifiedJSXName(object.property); -} + 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); + 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(acorn).tokTypes; - }, - configurable: true, - enumerable: true -}); - -function plugin(options, Parser) { - const acorn$1 = Parser.acorn || acorn; - const acornJsx = getJsxTokens(acorn$1); - const tt = acorn$1.tokTypes; - const tok = acornJsx.tokTypes; - const tokContexts = acorn$1.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$1.isNewLine; - const isIdentifierStart = acorn$1.isIdentifierStart; - const isIdentifierChar = acorn$1.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); + // 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(acorn).tokTypes; + }, + configurable: true, + enumerable: true, + }); + + function plugin(options, Parser) { + const acorn$1 = Parser.acorn || acorn; + const acornJsx = getJsxTokens(acorn$1); + const tt = acorn$1.tokTypes; + const tok = acornJsx.tokTypes; + const tokContexts = acorn$1.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$1.isNewLine; + const isIdentifierStart = acorn$1.isIdentifierStart; + const isIdentifierChar = acorn$1.isIdentifierChar; + + return class extends Parser { + // Expose actual `tokTypes` and `tokContexts` to other plugins. + static get acornJsx() { + return acornJsx; + } - 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); + // 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; + } } - 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; + 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; + } - case 62: // '>' - case 125: // '}' - this.raise( - this.pos, - "Unexpected token `" + this.input[this.pos] + "`. Did you mean `" + - (ch === 62 ? ">" : "}") + "` or " + "`{\"" + this.input[this.pos] + "\"}" + "`?" - ); + return out; + } - default: - if (isNewLine(ch)) { + 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(true); + 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_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)); + 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 { - str = str.substr(1); - if (decimalNumber.test(str)) - entity = String.fromCharCode(parseInt(str, 10)); + entity = xhtml[str]; } - } else { - entity = xhtml[str]; + break; } - break; + str += ch; } - str += ch; - } - if (!entity) { - this.pos = startPos; - return '&'; + if (!entity) { + this.pos = startPos; + return '&'; + } + return entity; } - 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'); - } + // 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)); + } - // Parses element name in any form - namespaced, member - // or single identifier. + // Parse next token as JSX 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(); + 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'); } - while (this.eat(tt.dot)) { - let newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsx_parseIdentifier(); - node = this.finishNode(newNode, 'JSXMemberExpression'); + + // 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'); } - return node; - } - // Parses any type of JSX attribute value. + // Parses element name in any form - namespaced, member + // or single identifier. - 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'); + 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; + } - case tok.jsxTagStart: - case tt.string: - return this.parseExprAtom(); + // Parses any type of JSX attribute value. - default: - this.raise(this.start, 'JSX value should be either an expression or a quoted JSX text'); - } - } + 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; - // 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). + case tok.jsxTagStart: + case tt.string: + return this.parseExprAtom(); - jsx_parseEmptyExpression() { - let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); - return this.finishNodeAt(node, 'JSXEmptyExpression', this.start, this.startLoc); - } + default: + this.raise(this.start, 'JSX value should be either an expression or a quoted JSX text'); + } + } - // Parses JSX expression enclosed into curly brackets. + // 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_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'); - } + jsx_parseEmptyExpression() { + let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); + return this.finishNodeAt(node, 'JSXEmptyExpression', this.start, this.startLoc); + } - // Parses following JSX attribute name-value pair. + // Parses JSX expression enclosed into curly brackets. - jsx_parseAttribute() { - let node = this.startNode(); - if (this.eat(tt.braceL)) { - this.expect(tt.ellipsis); - node.argument = this.parseMaybeAssign(); + 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, 'JSXSpreadAttribute'); + return this.finishNode(node, 'JSXExpressionContainer'); } - 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 following JSX attribute name-value pair. - // Parses JSX closing tag starting after ''); } } - if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { - this.raise( - closingElement.start, - 'Expected corresponding JSX closing tag for <' + getQualifiedJSXName(openingElement.name) + '>'); + 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); } - 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"); + // Parse JSX text + + jsx_parseText() { + let node = this.parseLiteral(this.value); + node.type = 'JSXText'; + return node; } - return this.finishNode(node, 'JSX' + fragmentOrElement); - } - // Parse JSX text + // Parses entire JSX element from current position. - jsx_parseText() { - let node = this.parseLiteral(this.value); - node.type = "JSXText"; - return node; - } + jsx_parseElement() { + let startPos = this.start, + startLoc = this.startLoc; + this.next(); + return this.jsx_parseElementAt(startPos, startLoc); + } - // Parses entire JSX element from current position. + 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); + } - jsx_parseElement() { - let startPos = this.start, startLoc = this.startLoc; - this.next(); - return this.jsx_parseElementAt(startPos, startLoc); - } + readToken(code) { + let context = this.curContext(); - 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); - } + if (context === tc_expr) return this.jsx_readToken(); - readToken(code) { - let context = this.curContext(); + if (context === tc_oTag || context === tc_cTag) { + if (isIdentifierStart(code)) return this.jsx_readWord(); - if (context === tc_expr) return this.jsx_readToken(); + if (code == 62) { + ++this.pos; + return this.finishToken(tok.jsxTagEnd); + } - if (context === tc_oTag || context === tc_cTag) { - if (isIdentifierStart(code)) return this.jsx_readWord(); + if ((code === 34 || code === 39) && context == tc_oTag) return this.jsx_readString(code); + } - if (code == 62) { + if (code === 60 && this.exprAllowed && this.input.charCodeAt(this.pos + 1) !== 33) { ++this.pos; - return this.finishToken(tok.jsxTagEnd); + return this.finishToken(tok.jsxTagStart); } - - 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); } - 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); + 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); + } } - } - }; -} + }; + } }); const acornJsx$1 = acorn.Parser.extend(acornJsx()); -const parse = (source) => acorn.parse(source, { - sourceType: 'module', - ecmaVersion: 2020, - locations: true -}); +const parse = (source) => + acorn.parse(source, { + sourceType: 'module', + ecmaVersion: 2020, + locations: true, + }); -const parse_expression_at = (source, index) => acornJsx$1.parseExpressionAt(source, index, { - sourceType: 'module', - ecmaVersion: 2020, - locations: true -}); +const parse_expression_at = (source, index) => + acornJsx$1.parseExpressionAt(source, index, { + sourceType: 'module', + ecmaVersion: 2020, + locations: true, + }); const whitespace = /[ \t\r\n]/; @@ -848,2413 +829,2417 @@ const dimensions = /^(?:offset|client)(?:Width|Height)$/; // import { Node } from 'estree'; function read_expression(parser) { - try { - const node = parse_expression_at(parser.template, parser.index); + try { + const node = parse_expression_at(parser.template, parser.index); - let num_parens = 0; + let num_parens = 0; - for (let i = parser.index; i < node.start; i += 1) { - if (parser.template[i] === '(') num_parens += 1; - } + for (let i = parser.index; i < node.start; i += 1) { + if (parser.template[i] === '(') num_parens += 1; + } - let index = node.end; - while (num_parens > 0) { - const char = parser.template[index]; - - if (char === ')') { - num_parens -= 1; - } else if (!whitespace.test(char)) { - parser.error({ - code: 'unexpected-token', - message: 'Expected )' - }, index); - } + let index = node.end; + while (num_parens > 0) { + const char = parser.template[index]; + + if (char === ')') { + num_parens -= 1; + } else if (!whitespace.test(char)) { + parser.error( + { + code: 'unexpected-token', + message: 'Expected )', + }, + index + ); + } - index += 1; - } + index += 1; + } + + parser.index = index; - parser.index = index; - - return parser.template.substring(node.start, node.end); - // return node as Node; - } catch (err) { - parser.acorn_error(err); - } + return parser.template.substring(node.start, node.end); + // return node as Node; + } catch (err) { + parser.acorn_error(err); + } } const script_closing_tag = ''; function get_context(parser, attributes, start) { - const context = attributes.find(attribute => attribute.name === 'context'); - if (!context) return 'default'; - - if (context.value.length !== 1 || context.value[0].type !== 'Text') { - parser.error({ - code: 'invalid-script', - message: 'context attribute must be static' - }, start); - } + const context = attributes.find((attribute) => attribute.name === 'context'); + if (!context) return 'default'; + + if (context.value.length !== 1 || context.value[0].type !== 'Text') { + parser.error( + { + code: 'invalid-script', + message: 'context attribute must be static', + }, + start + ); + } - const value = context.value[0].data; + const value = context.value[0].data; - if (value !== 'module') { - parser.error({ - code: 'invalid-script', - message: 'If the context attribute is supplied, its value must be "module"' - }, context.start); - } + if (value !== 'module') { + parser.error( + { + code: 'invalid-script', + message: 'If the context attribute is supplied, its value must be "module"', + }, + context.start + ); + } - return value; + return value; } function read_script(parser, start, attributes) { - const script_start = parser.index; - const script_end = parser.template.indexOf(script_closing_tag, script_start); + const script_start = parser.index; + const script_end = parser.template.indexOf(script_closing_tag, script_start); - if (script_end === -1) { - parser.error({ - code: 'unclosed-script', - message: '`; - }; + }; } diff --git a/src/frontend/render/svelte.ts b/src/frontend/render/svelte.ts index ffdf70254ef8..51cb778db56f 100644 --- a/src/frontend/render/svelte.ts +++ b/src/frontend/render/svelte.ts @@ -4,7 +4,7 @@ export function __svelte_static(SvelteComponent: Component) { return (attrs: Record, ...children: any): string => { // TODO include head and css stuff too... const { html } = SvelteComponent.render(attrs); - + return html; }; } @@ -12,7 +12,7 @@ export function __svelte_static(SvelteComponent: Component) { export function __svelte_dynamic(SvelteComponent: Component, importUrl: string) { const placeholderId = `placeholder_${String(Math.random())}`; return (attrs: Record, ...children: any) => { - return `
`; }; -} \ No newline at end of file +} diff --git a/src/generate.ts b/src/generate.ts index 51dbd055a1c9..ad2e9ded9e3c 100644 --- a/src/generate.ts +++ b/src/generate.ts @@ -6,38 +6,39 @@ import { relative as pathRelative } from 'path'; const { mkdir, readdir, stat, writeFile } = fsPromises; async function* allPages(root: URL): AsyncGenerator { - for(const filename of await readdir(root)) { + for (const filename of await readdir(root)) { const fullpath = new URL(filename, root); const info = await stat(fullpath); - if(info.isDirectory()) { - yield * allPages(new URL(fullpath + '/')); + if (info.isDirectory()) { + yield* allPages(new URL(fullpath + '/')); } else { yield fullpath; } } } -export default async function(astroConfig: AstroConfig) { +export default async function (astroConfig: AstroConfig) { const { projectRoot, hmxRoot } = astroConfig; const pageRoot = new URL('./pages/', hmxRoot); const dist = new URL(astroConfig.dist + '/', projectRoot); const configPath = new URL('./snowpack.config.js', projectRoot).pathname; - const config = await loadConfiguration({ - root: projectRoot.pathname, - devOptions: - {open: 'none', output: 'stream' - } - }, configPath); + const config = await loadConfiguration( + { + root: projectRoot.pathname, + devOptions: { open: 'none', output: 'stream' }, + }, + configPath + ); const snowpack = await startSnowpackServer({ config, - lockfile: null // TODO should this be required? + lockfile: null, // TODO should this be required? }); const runtime = snowpack.getServerRuntime(); - for await(const filepath of allPages(pageRoot)) { + for await (const filepath of allPages(pageRoot)) { const rel = pathRelative(hmxRoot.pathname, filepath.pathname); // pages/index.hmx const pagePath = `/_hmx/${rel.replace(/\.(hmx|md)/, '.js')}`; @@ -49,11 +50,11 @@ export default async function(astroConfig: AstroConfig) { await mkdir(outFolder, { recursive: true }); await writeFile(outPath, html, 'utf-8'); - } catch(err) { + } catch (err) { console.error('Unable to generate page', rel); } } await snowpack.shutdown(); process.exit(0); -} \ No newline at end of file +} diff --git a/src/markdown-encode.ts b/src/markdown-encode.ts index 0719aaa32ef9..173c63fde58f 100644 --- a/src/markdown-encode.ts +++ b/src/markdown-encode.ts @@ -6,14 +6,14 @@ const characterReferences = { '<': 'lt', '>': 'gt', '{': 'lbrace', - '}': 'rbrace' + '}': 'rbrace', }; type EncodedChars = '"' | '&' | '<' | '>' | '{' | '}'; function encode(value: string): string { return value.replace(/["&<>{}]/g, (raw: string) => { - return '&' + characterReferences[raw as EncodedChars] + ';' + return '&' + characterReferences[raw as EncodedChars] + ';'; }); } @@ -21,14 +21,12 @@ const plugin: HtmlExtension = { exit: { codeFlowValue() { const token: Token = arguments[0]; - const serialize = this.sliceSerialize as unknown as (t: Token) => string; - const raw = this.raw as unknown as (s: string) => void; + const serialize = (this.sliceSerialize as unknown) as (t: Token) => string; + const raw = (this.raw as unknown) as (s: string) => void; const value = serialize(token); raw(encode(value)); - } - } + }, + }, }; -export { - plugin as default -}; \ No newline at end of file +export { plugin as default }; diff --git a/src/parser.ts b/src/parser.ts index f47486f65ef2..d972e72cef01 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -1,15 +1,6 @@ -const [ - CHARS, - TAG_START, - TAG_END, - END_TAG_START, - EQ, - EOF, - UNKNOWN -] = Array.from(new Array(20), (x, i) => i + 1); - -const voidTags = new Set(['area', 'base', 'br', 'col', 'command', 'embed', 'hr', - 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']); +const [CHARS, TAG_START, TAG_END, END_TAG_START, EQ, EOF, UNKNOWN] = Array.from(new Array(20), (x, i) => i + 1); + +const voidTags = new Set(['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']); type Visitor = (tag: Tag) => Tag; @@ -71,27 +62,27 @@ function createState(code: string, visitor: Visitor): State { return { code, index: 0, - visitor + visitor, }; } function* _stringify(tag: Tag): Generator { yield '<'; yield tag.tagName; - for(let attr of tag.attributes) { + for (let attr of tag.attributes) { yield ' '; yield `"${attr.name}"`; - if(!attr.boolean) { + if (!attr.boolean) { yield '='; yield `"${attr.value}"`; } } - if(!tag.void) { - for(let child of tag.children) { - if(child.type === 0) { + if (!tag.void) { + for (let child of tag.children) { + if (child.type === 0) { yield child.data; } else { - yield * _stringify(child); + yield* _stringify(child); } } } @@ -99,7 +90,7 @@ function* _stringify(tag: Tag): Generator { function stringify(tag: Tag) { let out = ''; - for(let chunk of _stringify(tag)) { + for (let chunk of _stringify(tag)) { out += chunk; } return out; @@ -114,7 +105,7 @@ function spliceSlice(str: string, index: number, count: number, add: string) { } } - return str.slice(0, index) + (add || "") + str.slice(index + count); + return str.slice(0, index) + (add || '') + str.slice(index + count); } function replaceTag(state: State, tag: Tag) { @@ -131,28 +122,28 @@ function consumeToken(state: State) { do { const c = stateNext(state); - if(/\s/.test(c)) { + if (/\s/.test(c)) { continue; } - if(c === '<') { + if (c === '<') { return TAG_START; } - if(c === '>') { + if (c === '>') { return TAG_END; } - if(c === '/') { + if (c === '/') { return END_TAG_START; } - if(/[a-zA-Z]/.test(c)) { + if (/[a-zA-Z]/.test(c)) { return CHARS; } return UNKNOWN; - } while(stateInBounds(state)); + } while (stateInBounds(state)); return EOF; } @@ -161,7 +152,7 @@ function consumeText(state: State): Text { let start = state.index; let data = ''; let c = stateNext(state); - while(stateInBounds(state) && c !== '<') { + while (stateInBounds(state) && c !== '<') { data += c; c = stateNext(state); } @@ -170,14 +161,14 @@ function consumeText(state: State): Text { type: 0, data, start, - end: state.index - 1 + end: state.index - 1, }; } function consumeTagName(state: State): string { let name = ''; let token = consumeToken(state); - while(token === CHARS) { + while (token === CHARS) { name += stateChar(state); token = consumeToken(state); } @@ -186,19 +177,20 @@ function consumeTagName(state: State): string { function consumeAttribute(state: State): Attribute { let start = state.index; - let name = '', token; + let name = '', + token; do { name += stateChar(state).toLowerCase(); token = consumeToken(state); - } while(token === CHARS); + } while (token === CHARS); - if(token !== EQ) { + if (token !== EQ) { stateRewind(state); return { name, boolean: true, start, - end: state.index - 1 + end: state.index - 1, }; } @@ -206,26 +198,26 @@ function consumeAttribute(state: State): Attribute { do { value += stateChar(state).toLowerCase(); token = consumeToken(state); - } while(token === CHARS); + } while (token === CHARS); return { name, value, boolean: false, start, - end: state.index - 1 + end: state.index - 1, }; } function consumeChildren(state: State): Array { const children: Array = []; - childLoop: while(stateInBounds(state)) { + childLoop: while (stateInBounds(state)) { const token = consumeToken(state); - switch(token) { + switch (token) { case TAG_START: { const next = consumeToken(state); - if(next === END_TAG_START) { + if (next === END_TAG_START) { consumeTagName(state); consumeToken(state); // > break childLoop; @@ -256,8 +248,8 @@ function consumeTag(state: State): Tag { let token = consumeToken(state); // Collect attributes - attrLoop: while(token !== TAG_END) { - switch(token) { + attrLoop: while (token !== TAG_END) { + switch (token) { case CHARS: { attributes.push(consumeAttribute(state)); break; @@ -279,11 +271,11 @@ function consumeTag(state: State): Tag { children, void: voidTags.has(tagName), start, - end: state.index - 1 + end: state.index - 1, }; const replacement = state.visitor(node); - if(replacement !== node) { + if (replacement !== node) { replaceTag(state, node); } @@ -294,11 +286,11 @@ function consumeDocument(state: State): Document { const children: Array = consumeChildren(state); return { - children + children, }; } export function preparse(code: string, visitor: Visitor) { const state = createState(code, visitor); consumeDocument(state); -} \ No newline at end of file +}