Mirror: TypeScript LSP plugin that finds GraphQL documents in your code and provides diagnostics, auto-complete and hover-information.

Bootstrap e2e tests (#23)

* Add basic e2e test

* Use pnpm workspace

* Move test to npmignore

* Test from root

* Fix faulty rebase

* Add test to CI action

* Fix monorepo stuff

* Relax test timeout a bit

* Add tsconfig

* Add fixture projects to workspace

* Can use workspace

* Another oops

* Delete .npmrc

authored by

Daniel and committed by
GitHub
2a89522e d702223f

+930 -2
+3
.github/workflows/ci.yaml
··· 45 45 46 46 - name: Build 47 47 run: pnpm --filter @0no-co/graphqlsp run build 48 + 49 + - name: Test 50 + run: pnpm run test:e2e
+5 -2
package.json
··· 8 8 "build": "rollup -c ./scripts/build.mjs", 9 9 "prepare": "husky install", 10 10 "dev": "pnpm --filter @0no-co/graphqlsp dev", 11 - "launch-debug": "./scripts/launch-debug.sh" 11 + "launch-debug": "./scripts/launch-debug.sh", 12 + "test:e2e": "vitest run" 12 13 }, 13 14 "prettier": { 14 15 "singleQuote": true, ··· 23 24 "@changesets/get-github-info": "^0.5.2", 24 25 "@rollup/plugin-terser": "^0.4.1", 25 26 "@rollup/plugin-typescript": "^11.1.0", 27 + "@types/node": "^18.15.11", 26 28 "dotenv": "^16.0.3", 27 29 "husky": "^8.0.3", 28 30 "lint-staged": "^13.2.1", 29 31 "prettier": "^2.8.7", 30 32 "rollup": "^3.20.2", 31 - "typescript": "^5.0.0" 33 + "typescript": "^5.0.0", 34 + "vitest": "^0.30.1" 32 35 } 33 36 }
+1
packages/graphqlsp/.npmignore
··· 1 1 src 2 + test 2 3 node_modules 3 4 scripts 4 5 example
+699
pnpm-lock.yaml
··· 16 16 '@rollup/plugin-typescript': 17 17 specifier: ^11.1.0 18 18 version: 11.1.0(rollup@3.20.2)(typescript@5.0.4) 19 + '@types/node': 20 + specifier: ^18.15.11 21 + version: 18.15.11 19 22 dotenv: 20 23 specifier: ^16.0.3 21 24 version: 16.0.3 ··· 34 37 typescript: 35 38 specifier: ^5.0.0 36 39 version: 5.0.4 40 + vitest: 41 + specifier: ^0.30.1 42 + version: 0.30.1 37 43 38 44 packages/example: 39 45 dependencies: ··· 115 121 specifier: ^5.0.0 116 122 version: 5.0.4 117 123 124 + test/e2e/fixture-project: 125 + dependencies: 126 + '@0no-co/graphqlsp': 127 + specifier: workspace:* 128 + version: link:../../../packages/graphqlsp 129 + '@urql/core': 130 + specifier: ^4.0.4 131 + version: 4.0.4 132 + devDependencies: 133 + typescript: 134 + specifier: ^5.0.4 135 + version: 5.0.4 136 + 118 137 packages: 138 + 139 + /@0no-co/graphql.web@1.0.0: 140 + resolution: {integrity: sha512-JBq2pWyDchE1vVjj/+c4dzZ8stbpew4RrzpZ3vYdn1WJFGHfYg6YIX1fDdMKtSXJJM9FUlsoDOxemr9WMM2p+A==} 141 + peerDependencies: 142 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 143 + peerDependenciesMeta: 144 + graphql: 145 + optional: true 146 + dev: false 119 147 120 148 /@ampproject/remapping@2.2.0: 121 149 resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} ··· 844 872 prettier: 2.8.7 845 873 dev: true 846 874 875 + /@esbuild/android-arm64@0.17.16: 876 + resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} 877 + engines: {node: '>=12'} 878 + cpu: [arm64] 879 + os: [android] 880 + requiresBuild: true 881 + dev: true 882 + optional: true 883 + 884 + /@esbuild/android-arm@0.17.16: 885 + resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} 886 + engines: {node: '>=12'} 887 + cpu: [arm] 888 + os: [android] 889 + requiresBuild: true 890 + dev: true 891 + optional: true 892 + 893 + /@esbuild/android-x64@0.17.16: 894 + resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} 895 + engines: {node: '>=12'} 896 + cpu: [x64] 897 + os: [android] 898 + requiresBuild: true 899 + dev: true 900 + optional: true 901 + 902 + /@esbuild/darwin-arm64@0.17.16: 903 + resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} 904 + engines: {node: '>=12'} 905 + cpu: [arm64] 906 + os: [darwin] 907 + requiresBuild: true 908 + dev: true 909 + optional: true 910 + 911 + /@esbuild/darwin-x64@0.17.16: 912 + resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} 913 + engines: {node: '>=12'} 914 + cpu: [x64] 915 + os: [darwin] 916 + requiresBuild: true 917 + dev: true 918 + optional: true 919 + 920 + /@esbuild/freebsd-arm64@0.17.16: 921 + resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} 922 + engines: {node: '>=12'} 923 + cpu: [arm64] 924 + os: [freebsd] 925 + requiresBuild: true 926 + dev: true 927 + optional: true 928 + 929 + /@esbuild/freebsd-x64@0.17.16: 930 + resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} 931 + engines: {node: '>=12'} 932 + cpu: [x64] 933 + os: [freebsd] 934 + requiresBuild: true 935 + dev: true 936 + optional: true 937 + 938 + /@esbuild/linux-arm64@0.17.16: 939 + resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} 940 + engines: {node: '>=12'} 941 + cpu: [arm64] 942 + os: [linux] 943 + requiresBuild: true 944 + dev: true 945 + optional: true 946 + 947 + /@esbuild/linux-arm@0.17.16: 948 + resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} 949 + engines: {node: '>=12'} 950 + cpu: [arm] 951 + os: [linux] 952 + requiresBuild: true 953 + dev: true 954 + optional: true 955 + 956 + /@esbuild/linux-ia32@0.17.16: 957 + resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} 958 + engines: {node: '>=12'} 959 + cpu: [ia32] 960 + os: [linux] 961 + requiresBuild: true 962 + dev: true 963 + optional: true 964 + 965 + /@esbuild/linux-loong64@0.17.16: 966 + resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} 967 + engines: {node: '>=12'} 968 + cpu: [loong64] 969 + os: [linux] 970 + requiresBuild: true 971 + dev: true 972 + optional: true 973 + 974 + /@esbuild/linux-mips64el@0.17.16: 975 + resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} 976 + engines: {node: '>=12'} 977 + cpu: [mips64el] 978 + os: [linux] 979 + requiresBuild: true 980 + dev: true 981 + optional: true 982 + 983 + /@esbuild/linux-ppc64@0.17.16: 984 + resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} 985 + engines: {node: '>=12'} 986 + cpu: [ppc64] 987 + os: [linux] 988 + requiresBuild: true 989 + dev: true 990 + optional: true 991 + 992 + /@esbuild/linux-riscv64@0.17.16: 993 + resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} 994 + engines: {node: '>=12'} 995 + cpu: [riscv64] 996 + os: [linux] 997 + requiresBuild: true 998 + dev: true 999 + optional: true 1000 + 1001 + /@esbuild/linux-s390x@0.17.16: 1002 + resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} 1003 + engines: {node: '>=12'} 1004 + cpu: [s390x] 1005 + os: [linux] 1006 + requiresBuild: true 1007 + dev: true 1008 + optional: true 1009 + 1010 + /@esbuild/linux-x64@0.17.16: 1011 + resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} 1012 + engines: {node: '>=12'} 1013 + cpu: [x64] 1014 + os: [linux] 1015 + requiresBuild: true 1016 + dev: true 1017 + optional: true 1018 + 1019 + /@esbuild/netbsd-x64@0.17.16: 1020 + resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} 1021 + engines: {node: '>=12'} 1022 + cpu: [x64] 1023 + os: [netbsd] 1024 + requiresBuild: true 1025 + dev: true 1026 + optional: true 1027 + 1028 + /@esbuild/openbsd-x64@0.17.16: 1029 + resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} 1030 + engines: {node: '>=12'} 1031 + cpu: [x64] 1032 + os: [openbsd] 1033 + requiresBuild: true 1034 + dev: true 1035 + optional: true 1036 + 1037 + /@esbuild/sunos-x64@0.17.16: 1038 + resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} 1039 + engines: {node: '>=12'} 1040 + cpu: [x64] 1041 + os: [sunos] 1042 + requiresBuild: true 1043 + dev: true 1044 + optional: true 1045 + 1046 + /@esbuild/win32-arm64@0.17.16: 1047 + resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} 1048 + engines: {node: '>=12'} 1049 + cpu: [arm64] 1050 + os: [win32] 1051 + requiresBuild: true 1052 + dev: true 1053 + optional: true 1054 + 1055 + /@esbuild/win32-ia32@0.17.16: 1056 + resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} 1057 + engines: {node: '>=12'} 1058 + cpu: [ia32] 1059 + os: [win32] 1060 + requiresBuild: true 1061 + dev: true 1062 + optional: true 1063 + 1064 + /@esbuild/win32-x64@0.17.16: 1065 + resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} 1066 + engines: {node: '>=12'} 1067 + cpu: [x64] 1068 + os: [win32] 1069 + requiresBuild: true 1070 + dev: true 1071 + optional: true 1072 + 847 1073 /@graphql-codegen/core@2.6.8(graphql@16.6.0): 848 1074 resolution: {integrity: sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==} 849 1075 peerDependencies: ··· 1137 1363 rollup: 3.20.2 1138 1364 dev: true 1139 1365 1366 + /@types/chai-subset@1.3.3: 1367 + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 1368 + dependencies: 1369 + '@types/chai': 4.3.4 1370 + dev: true 1371 + 1372 + /@types/chai@4.3.4: 1373 + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 1374 + dev: true 1375 + 1140 1376 /@types/estree@1.0.0: 1141 1377 resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} 1142 1378 dev: true ··· 1183 1419 wonka: 6.3.1 1184 1420 dev: false 1185 1421 1422 + /@urql/core@4.0.4: 1423 + resolution: {integrity: sha512-r1rB/VMVpCnfnMTTzCAs+HY+UqOHUgpZ+GimLtU4DCTP3C78DK+m4qr36M7KKleggrKgcpcC1TE8eFEVcKzfSQ==} 1424 + dependencies: 1425 + '@0no-co/graphql.web': 1.0.0 1426 + wonka: 6.3.1 1427 + transitivePeerDependencies: 1428 + - graphql 1429 + dev: false 1430 + 1431 + /@vitest/expect@0.30.1: 1432 + resolution: {integrity: sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==} 1433 + dependencies: 1434 + '@vitest/spy': 0.30.1 1435 + '@vitest/utils': 0.30.1 1436 + chai: 4.3.7 1437 + dev: true 1438 + 1439 + /@vitest/runner@0.30.1: 1440 + resolution: {integrity: sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==} 1441 + dependencies: 1442 + '@vitest/utils': 0.30.1 1443 + concordance: 5.0.4 1444 + p-limit: 4.0.0 1445 + pathe: 1.1.0 1446 + dev: true 1447 + 1448 + /@vitest/snapshot@0.30.1: 1449 + resolution: {integrity: sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==} 1450 + dependencies: 1451 + magic-string: 0.30.0 1452 + pathe: 1.1.0 1453 + pretty-format: 27.5.1 1454 + dev: true 1455 + 1456 + /@vitest/spy@0.30.1: 1457 + resolution: {integrity: sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==} 1458 + dependencies: 1459 + tinyspy: 2.1.0 1460 + dev: true 1461 + 1462 + /@vitest/utils@0.30.1: 1463 + resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} 1464 + dependencies: 1465 + concordance: 5.0.4 1466 + loupe: 2.3.6 1467 + pretty-format: 27.5.1 1468 + dev: true 1469 + 1470 + /acorn-walk@8.2.0: 1471 + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 1472 + engines: {node: '>=0.4.0'} 1473 + dev: true 1474 + 1186 1475 /acorn@8.8.2: 1187 1476 resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 1188 1477 engines: {node: '>=0.4.0'} ··· 1230 1519 dependencies: 1231 1520 color-convert: 2.0.1 1232 1521 1522 + /ansi-styles@5.2.0: 1523 + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 1524 + engines: {node: '>=10'} 1525 + dev: true 1526 + 1233 1527 /ansi-styles@6.2.1: 1234 1528 resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1235 1529 engines: {node: '>=12'} ··· 1271 1565 /asap@2.0.6: 1272 1566 resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} 1273 1567 1568 + /assertion-error@1.1.0: 1569 + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 1570 + dev: true 1571 + 1274 1572 /astral-regex@2.0.0: 1275 1573 resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 1276 1574 engines: {node: '>=8'} ··· 1338 1636 is-windows: 1.0.2 1339 1637 dev: true 1340 1638 1639 + /blueimp-md5@2.19.0: 1640 + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} 1641 + dev: true 1642 + 1341 1643 /brace-expansion@1.1.11: 1342 1644 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1343 1645 dependencies: ··· 1374 1676 1375 1677 /buffer-from@1.1.2: 1376 1678 resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1679 + dev: true 1680 + 1681 + /cac@6.7.14: 1682 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1683 + engines: {node: '>=8'} 1377 1684 dev: true 1378 1685 1379 1686 /call-bind@1.0.2: ··· 1412 1719 tslib: 2.4.1 1413 1720 upper-case-first: 2.0.2 1414 1721 1722 + /chai@4.3.7: 1723 + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 1724 + engines: {node: '>=4'} 1725 + dependencies: 1726 + assertion-error: 1.1.0 1727 + check-error: 1.0.2 1728 + deep-eql: 4.1.3 1729 + get-func-name: 2.0.0 1730 + loupe: 2.3.6 1731 + pathval: 1.1.1 1732 + type-detect: 4.0.8 1733 + dev: true 1734 + 1415 1735 /chalk@2.4.2: 1416 1736 resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1417 1737 engines: {node: '>=4'} ··· 1464 1784 1465 1785 /chardet@0.7.0: 1466 1786 resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 1787 + dev: true 1788 + 1789 + /check-error@1.0.2: 1790 + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 1467 1791 dev: true 1468 1792 1469 1793 /ci-info@3.8.0: ··· 1564 1888 /concat-map@0.0.1: 1565 1889 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1566 1890 1891 + /concordance@5.0.4: 1892 + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} 1893 + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} 1894 + dependencies: 1895 + date-time: 3.1.0 1896 + esutils: 2.0.3 1897 + fast-diff: 1.2.0 1898 + js-string-escape: 1.0.1 1899 + lodash: 4.17.21 1900 + md5-hex: 3.0.1 1901 + semver: 7.4.0 1902 + well-known-symbols: 2.0.0 1903 + dev: true 1904 + 1567 1905 /constant-case@3.0.4: 1568 1906 resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} 1569 1907 dependencies: ··· 1624 1962 resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} 1625 1963 dev: true 1626 1964 1965 + /date-time@3.1.0: 1966 + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} 1967 + engines: {node: '>=6'} 1968 + dependencies: 1969 + time-zone: 1.0.0 1970 + dev: true 1971 + 1627 1972 /debug@4.3.4: 1628 1973 resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1629 1974 engines: {node: '>=6.0'} ··· 1647 1992 resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 1648 1993 engines: {node: '>=0.10.0'} 1649 1994 1995 + /deep-eql@4.1.3: 1996 + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1997 + engines: {node: '>=6'} 1998 + dependencies: 1999 + type-detect: 4.0.8 2000 + dev: true 2001 + 1650 2002 /defaults@1.0.4: 1651 2003 resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 1652 2004 dependencies: ··· 1784 2136 is-symbol: 1.0.4 1785 2137 dev: true 1786 2138 2139 + /esbuild@0.17.16: 2140 + resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} 2141 + engines: {node: '>=12'} 2142 + hasBin: true 2143 + requiresBuild: true 2144 + optionalDependencies: 2145 + '@esbuild/android-arm': 0.17.16 2146 + '@esbuild/android-arm64': 0.17.16 2147 + '@esbuild/android-x64': 0.17.16 2148 + '@esbuild/darwin-arm64': 0.17.16 2149 + '@esbuild/darwin-x64': 0.17.16 2150 + '@esbuild/freebsd-arm64': 0.17.16 2151 + '@esbuild/freebsd-x64': 0.17.16 2152 + '@esbuild/linux-arm': 0.17.16 2153 + '@esbuild/linux-arm64': 0.17.16 2154 + '@esbuild/linux-ia32': 0.17.16 2155 + '@esbuild/linux-loong64': 0.17.16 2156 + '@esbuild/linux-mips64el': 0.17.16 2157 + '@esbuild/linux-ppc64': 0.17.16 2158 + '@esbuild/linux-riscv64': 0.17.16 2159 + '@esbuild/linux-s390x': 0.17.16 2160 + '@esbuild/linux-x64': 0.17.16 2161 + '@esbuild/netbsd-x64': 0.17.16 2162 + '@esbuild/openbsd-x64': 0.17.16 2163 + '@esbuild/sunos-x64': 0.17.16 2164 + '@esbuild/win32-arm64': 0.17.16 2165 + '@esbuild/win32-ia32': 0.17.16 2166 + '@esbuild/win32-x64': 0.17.16 2167 + dev: true 2168 + 1787 2169 /escalade@3.1.1: 1788 2170 resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1789 2171 engines: {node: '>=6'} ··· 1802 2184 resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1803 2185 dev: true 1804 2186 2187 + /esutils@2.0.3: 2188 + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2189 + engines: {node: '>=0.10.0'} 2190 + dev: true 2191 + 1805 2192 /execa@7.1.1: 1806 2193 resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} 1807 2194 engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} ··· 1828 2215 chardet: 0.7.0 1829 2216 iconv-lite: 0.4.24 1830 2217 tmp: 0.0.33 2218 + dev: true 2219 + 2220 + /fast-diff@1.2.0: 2221 + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 1831 2222 dev: true 1832 2223 1833 2224 /fast-glob@3.2.11: ··· 1967 2358 resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1968 2359 engines: {node: 6.* || 8.* || >= 10.*} 1969 2360 2361 + /get-func-name@2.0.0: 2362 + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 2363 + dev: true 2364 + 1970 2365 /get-intrinsic@1.2.0: 1971 2366 resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 1972 2367 dependencies: ··· 2373 2768 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2374 2769 dev: true 2375 2770 2771 + /js-string-escape@1.0.1: 2772 + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} 2773 + engines: {node: '>= 0.8'} 2774 + dev: true 2775 + 2376 2776 /js-tokens@4.0.0: 2377 2777 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2378 2778 ··· 2397 2797 resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} 2398 2798 engines: {node: '>=6'} 2399 2799 hasBin: true 2800 + 2801 + /jsonc-parser@3.2.0: 2802 + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 2803 + dev: true 2400 2804 2401 2805 /jsonfile@4.0.0: 2402 2806 resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} ··· 2475 2879 strip-bom: 3.0.0 2476 2880 dev: true 2477 2881 2882 + /local-pkg@0.4.3: 2883 + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 2884 + engines: {node: '>=14'} 2885 + dev: true 2886 + 2478 2887 /locate-path@5.0.0: 2479 2888 resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2480 2889 engines: {node: '>=8'} ··· 2511 2920 dependencies: 2512 2921 js-tokens: 4.0.0 2513 2922 2923 + /loupe@2.3.6: 2924 + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 2925 + dependencies: 2926 + get-func-name: 2.0.0 2927 + dev: true 2928 + 2514 2929 /lower-case-first@2.0.2: 2515 2930 resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} 2516 2931 dependencies: ··· 2528 2943 yallist: 2.1.2 2529 2944 dev: true 2530 2945 2946 + /lru-cache@6.0.0: 2947 + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2948 + engines: {node: '>=10'} 2949 + dependencies: 2950 + yallist: 4.0.0 2951 + dev: true 2952 + 2953 + /magic-string@0.30.0: 2954 + resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} 2955 + engines: {node: '>=12'} 2956 + dependencies: 2957 + '@jridgewell/sourcemap-codec': 1.4.14 2958 + dev: true 2959 + 2531 2960 /map-cache@0.2.2: 2532 2961 resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} 2533 2962 engines: {node: '>=0.10.0'} ··· 2540 2969 /map-obj@4.3.0: 2541 2970 resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 2542 2971 engines: {node: '>=8'} 2972 + dev: true 2973 + 2974 + /md5-hex@3.0.1: 2975 + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} 2976 + engines: {node: '>=8'} 2977 + dependencies: 2978 + blueimp-md5: 2.19.0 2543 2979 dev: true 2544 2980 2545 2981 /meow@6.1.1: ··· 2622 3058 engines: {node: '>= 8.0.0'} 2623 3059 dev: true 2624 3060 3061 + /mlly@1.2.0: 3062 + resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} 3063 + dependencies: 3064 + acorn: 8.8.2 3065 + pathe: 1.1.0 3066 + pkg-types: 1.0.2 3067 + ufo: 1.1.1 3068 + dev: true 3069 + 2625 3070 /ms@2.1.2: 2626 3071 resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2627 3072 3073 + /nanoid@3.3.6: 3074 + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 3075 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 3076 + hasBin: true 3077 + dev: true 3078 + 2628 3079 /no-case@3.0.4: 2629 3080 resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} 2630 3081 dependencies: ··· 2743 3194 yocto-queue: 0.1.0 2744 3195 dev: true 2745 3196 3197 + /p-limit@4.0.0: 3198 + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 3199 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3200 + dependencies: 3201 + yocto-queue: 1.0.0 3202 + dev: true 3203 + 2746 3204 /p-locate@4.1.0: 2747 3205 resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2748 3206 engines: {node: '>=8'} ··· 2845 3303 engines: {node: '>=8'} 2846 3304 dev: true 2847 3305 3306 + /pathe@1.1.0: 3307 + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} 3308 + dev: true 3309 + 3310 + /pathval@1.1.1: 3311 + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 3312 + dev: true 3313 + 2848 3314 /picocolors@1.0.0: 2849 3315 resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2850 3316 ··· 2871 3337 find-up: 4.1.0 2872 3338 dev: true 2873 3339 3340 + /pkg-types@1.0.2: 3341 + resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} 3342 + dependencies: 3343 + jsonc-parser: 3.2.0 3344 + mlly: 1.2.0 3345 + pathe: 1.1.0 3346 + dev: true 3347 + 3348 + /postcss@8.4.22: 3349 + resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==} 3350 + engines: {node: ^10 || ^12 || >=14} 3351 + dependencies: 3352 + nanoid: 3.3.6 3353 + picocolors: 1.0.0 3354 + source-map-js: 1.0.2 3355 + dev: true 3356 + 2874 3357 /preferred-pm@3.0.3: 2875 3358 resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} 2876 3359 engines: {node: '>=10'} ··· 2887 3370 hasBin: true 2888 3371 dev: true 2889 3372 3373 + /pretty-format@27.5.1: 3374 + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 3375 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 3376 + dependencies: 3377 + ansi-regex: 5.0.1 3378 + ansi-styles: 5.2.0 3379 + react-is: 17.0.2 3380 + dev: true 3381 + 2890 3382 /promise@7.3.1: 2891 3383 resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} 2892 3384 dependencies: ··· 2909 3401 resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 2910 3402 dependencies: 2911 3403 safe-buffer: 5.2.1 3404 + dev: true 3405 + 3406 + /react-is@17.0.2: 3407 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 2912 3408 dev: true 2913 3409 2914 3410 /read-pkg-up@7.0.1: ··· 3051 3547 /semver@6.3.0: 3052 3548 resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 3053 3549 hasBin: true 3550 + 3551 + /semver@7.4.0: 3552 + resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} 3553 + engines: {node: '>=10'} 3554 + hasBin: true 3555 + dependencies: 3556 + lru-cache: 6.0.0 3557 + dev: true 3054 3558 3055 3559 /sentence-case@3.0.4: 3056 3560 resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} ··· 3103 3607 object-inspect: 1.12.3 3104 3608 dev: true 3105 3609 3610 + /siginfo@2.0.0: 3611 + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3612 + dev: true 3613 + 3106 3614 /signal-exit@3.0.7: 3107 3615 resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3108 3616 dev: true ··· 3164 3672 dot-case: 3.0.4 3165 3673 tslib: 2.4.1 3166 3674 3675 + /source-map-js@1.0.2: 3676 + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3677 + engines: {node: '>=0.10.0'} 3678 + dev: true 3679 + 3167 3680 /source-map-support@0.5.21: 3168 3681 resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 3169 3682 dependencies: ··· 3214 3727 resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 3215 3728 dev: true 3216 3729 3730 + /stackback@0.0.2: 3731 + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3732 + dev: true 3733 + 3734 + /std-env@3.3.2: 3735 + resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} 3736 + dev: true 3737 + 3217 3738 /stream-transform@2.1.3: 3218 3739 resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} 3219 3740 dependencies: ··· 3297 3818 min-indent: 1.0.1 3298 3819 dev: true 3299 3820 3821 + /strip-literal@1.0.1: 3822 + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} 3823 + dependencies: 3824 + acorn: 8.8.2 3825 + dev: true 3826 + 3300 3827 /supports-color@5.5.0: 3301 3828 resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3302 3829 engines: {node: '>=4'} ··· 3339 3866 resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 3340 3867 dev: true 3341 3868 3869 + /time-zone@1.0.0: 3870 + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} 3871 + engines: {node: '>=4'} 3872 + dev: true 3873 + 3874 + /tinybench@2.4.0: 3875 + resolution: {integrity: sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==} 3876 + dev: true 3877 + 3878 + /tinypool@0.4.0: 3879 + resolution: {integrity: sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==} 3880 + engines: {node: '>=14.0.0'} 3881 + dev: true 3882 + 3883 + /tinyspy@2.1.0: 3884 + resolution: {integrity: sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==} 3885 + engines: {node: '>=14.0.0'} 3886 + dev: true 3887 + 3342 3888 /title-case@3.0.3: 3343 3889 resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} 3344 3890 dependencies: ··· 3387 3933 yargs: 17.7.1 3388 3934 dev: true 3389 3935 3936 + /type-detect@4.0.8: 3937 + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3938 + engines: {node: '>=4'} 3939 + dev: true 3940 + 3390 3941 /type-fest@0.13.1: 3391 3942 resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 3392 3943 engines: {node: '>=10'} ··· 3423 3974 3424 3975 /ua-parser-js@0.7.32: 3425 3976 resolution: {integrity: sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==} 3977 + 3978 + /ufo@1.1.1: 3979 + resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} 3980 + dev: true 3426 3981 3427 3982 /unbox-primitive@1.0.2: 3428 3983 resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} ··· 3473 4028 resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==} 3474 4029 engines: {node: '>=12'} 3475 4030 4031 + /vite-node@0.30.1(@types/node@18.15.11): 4032 + resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} 4033 + engines: {node: '>=v14.18.0'} 4034 + hasBin: true 4035 + dependencies: 4036 + cac: 6.7.14 4037 + debug: 4.3.4 4038 + mlly: 1.2.0 4039 + pathe: 1.1.0 4040 + picocolors: 1.0.0 4041 + vite: 4.2.1(@types/node@18.15.11) 4042 + transitivePeerDependencies: 4043 + - '@types/node' 4044 + - less 4045 + - sass 4046 + - stylus 4047 + - sugarss 4048 + - supports-color 4049 + - terser 4050 + dev: true 4051 + 4052 + /vite@4.2.1(@types/node@18.15.11): 4053 + resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} 4054 + engines: {node: ^14.18.0 || >=16.0.0} 4055 + hasBin: true 4056 + peerDependencies: 4057 + '@types/node': '>= 14' 4058 + less: '*' 4059 + sass: '*' 4060 + stylus: '*' 4061 + sugarss: '*' 4062 + terser: ^5.4.0 4063 + peerDependenciesMeta: 4064 + '@types/node': 4065 + optional: true 4066 + less: 4067 + optional: true 4068 + sass: 4069 + optional: true 4070 + stylus: 4071 + optional: true 4072 + sugarss: 4073 + optional: true 4074 + terser: 4075 + optional: true 4076 + dependencies: 4077 + '@types/node': 18.15.11 4078 + esbuild: 0.17.16 4079 + postcss: 8.4.22 4080 + resolve: 1.22.2 4081 + rollup: 3.20.2 4082 + optionalDependencies: 4083 + fsevents: 2.3.2 4084 + dev: true 4085 + 4086 + /vitest@0.30.1: 4087 + resolution: {integrity: sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==} 4088 + engines: {node: '>=v14.18.0'} 4089 + hasBin: true 4090 + peerDependencies: 4091 + '@edge-runtime/vm': '*' 4092 + '@vitest/browser': '*' 4093 + '@vitest/ui': '*' 4094 + happy-dom: '*' 4095 + jsdom: '*' 4096 + playwright: '*' 4097 + safaridriver: '*' 4098 + webdriverio: '*' 4099 + peerDependenciesMeta: 4100 + '@edge-runtime/vm': 4101 + optional: true 4102 + '@vitest/browser': 4103 + optional: true 4104 + '@vitest/ui': 4105 + optional: true 4106 + happy-dom: 4107 + optional: true 4108 + jsdom: 4109 + optional: true 4110 + playwright: 4111 + optional: true 4112 + safaridriver: 4113 + optional: true 4114 + webdriverio: 4115 + optional: true 4116 + dependencies: 4117 + '@types/chai': 4.3.4 4118 + '@types/chai-subset': 1.3.3 4119 + '@types/node': 18.15.11 4120 + '@vitest/expect': 0.30.1 4121 + '@vitest/runner': 0.30.1 4122 + '@vitest/snapshot': 0.30.1 4123 + '@vitest/spy': 0.30.1 4124 + '@vitest/utils': 0.30.1 4125 + acorn: 8.8.2 4126 + acorn-walk: 8.2.0 4127 + cac: 6.7.14 4128 + chai: 4.3.7 4129 + concordance: 5.0.4 4130 + debug: 4.3.4 4131 + local-pkg: 0.4.3 4132 + magic-string: 0.30.0 4133 + pathe: 1.1.0 4134 + picocolors: 1.0.0 4135 + source-map: 0.6.1 4136 + std-env: 3.3.2 4137 + strip-literal: 1.0.1 4138 + tinybench: 2.4.0 4139 + tinypool: 0.4.0 4140 + vite: 4.2.1(@types/node@18.15.11) 4141 + vite-node: 0.30.1(@types/node@18.15.11) 4142 + why-is-node-running: 2.2.2 4143 + transitivePeerDependencies: 4144 + - less 4145 + - sass 4146 + - stylus 4147 + - sugarss 4148 + - supports-color 4149 + - terser 4150 + dev: true 4151 + 3476 4152 /vscode-languageserver-types@3.17.2: 3477 4153 resolution: {integrity: sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==} 3478 4154 ··· 3485 4161 /webidl-conversions@3.0.1: 3486 4162 resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3487 4163 4164 + /well-known-symbols@2.0.0: 4165 + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} 4166 + engines: {node: '>=6'} 4167 + dev: true 4168 + 3488 4169 /whatwg-url@5.0.0: 3489 4170 resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3490 4171 dependencies: ··· 3539 4220 isexe: 2.0.0 3540 4221 dev: true 3541 4222 4223 + /why-is-node-running@2.2.2: 4224 + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 4225 + engines: {node: '>=8'} 4226 + hasBin: true 4227 + dependencies: 4228 + siginfo: 2.0.0 4229 + stackback: 0.0.2 4230 + dev: true 4231 + 3542 4232 /wonka@6.3.1: 3543 4233 resolution: {integrity: sha512-nJyGPcjuBiaLFn8QAlrHd+QjV9AlPO7snOWAhgx6aX0nQLMV6Wi0nqfrkmsXIH0efngbDOroOz2QyLnZMF16Hw==} 3544 4234 dev: false ··· 3573 4263 3574 4264 /yallist@2.1.2: 3575 4265 resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 4266 + dev: true 4267 + 4268 + /yallist@4.0.0: 4269 + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3576 4270 dev: true 3577 4271 3578 4272 /yaml@2.2.1: ··· 3624 4318 /yocto-queue@0.1.0: 3625 4319 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3626 4320 engines: {node: '>=10'} 4321 + dev: true 4322 + 4323 + /yocto-queue@1.0.0: 4324 + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 4325 + engines: {node: '>=12.20'} 3627 4326 dev: true 3628 4327 3629 4328 file:packages/graphqlsp(graphql@16.6.0):
+1
pnpm-workspace.yaml
··· 1 1 packages: 2 2 - 'packages/*' 3 + - 'test/e2e/**'
+3
test/e2e/fixture-project/.vscode/settings.json
··· 1 + { 2 + "typescript.tsdk": "node_modules/typescript/lib" 3 + }
+9
test/e2e/fixture-project/fixtures/simple.ts
··· 1 + import { gql } from '@urql/core'; 2 + 3 + const PostsQuery = gql` 4 + query AllPosts { 5 + posts { 6 + title 7 + } 8 + } 9 + `;
+10
test/e2e/fixture-project/package.json
··· 1 + { 2 + "private": true, 3 + "dependencies": { 4 + "@0no-co/graphqlsp": "workspace:*", 5 + "@urql/core": "^4.0.4" 6 + }, 7 + "devDependencies": { 8 + "typescript": "^5.0.4" 9 + } 10 + }
+10
test/e2e/fixture-project/schema.graphql
··· 1 + type Query { 2 + post(id: ID!): Post 3 + posts: [Post] 4 + } 5 + 6 + type Post { 7 + id: ID! 8 + title: String! 9 + content: String! 10 + }
+17
test/e2e/fixture-project/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "plugins": [ 4 + { 5 + "name": "@0no-co/graphqlsp", 6 + "schema": "./schema.graphql" 7 + } 8 + ], 9 + "target": "es2016", 10 + "esModuleInterop": true, 11 + "moduleResolution": "node", 12 + "forceConsistentCasingInFileNames": true, 13 + "strict": true, 14 + "skipLibCheck": true 15 + }, 16 + "exclude": ["node_modules", "fixtures"] 17 + }
+95
test/e2e/server.ts
··· 1 + import { ChildProcess, fork } from 'node:child_process'; 2 + import path from 'node:path'; 3 + import readline from 'node:readline'; 4 + import fs from 'node:fs'; 5 + import ts from 'typescript/lib/tsserverlibrary'; 6 + 7 + type Command = `${ts.server.protocol.CommandTypes}`; 8 + 9 + export class TSServer { 10 + #server: ChildProcess; 11 + #seq = 0; 12 + #resolvePromise: (() => void) | undefined; 13 + #waitFor: 14 + | (( 15 + response: ts.server.protocol.Response | ts.server.protocol.Event 16 + ) => boolean) 17 + | undefined; 18 + 19 + responses: Array<ts.server.protocol.Response | ts.server.protocol.Event> = []; 20 + 21 + constructor( 22 + public projectPath: string, 23 + public options: { debugLog?: boolean } = {} 24 + ) { 25 + const tsserverPath = path.resolve( 26 + projectPath, 27 + 'node_modules/typescript/lib/tsserver.js' 28 + ); 29 + 30 + fs.lstatSync(tsserverPath); 31 + 32 + const server = fork(tsserverPath, ['--logVerbosity', 'verbose'], { 33 + stdio: ['pipe', 'pipe', 'pipe', 'ipc'], 34 + cwd: projectPath, 35 + }); 36 + 37 + if (!server?.stdout) { 38 + throw new Error('Failed to start tsserver'); 39 + } 40 + 41 + server.stdout.setEncoding('utf-8'); 42 + readline.createInterface({ input: server.stdout }).on('line', line => { 43 + if (!line.startsWith('{')) return; 44 + 45 + try { 46 + const data = JSON.parse(line); 47 + 48 + this.responses.push(data); 49 + 50 + if (this.#resolvePromise && this.#waitFor?.(data)) { 51 + this.#resolvePromise(); 52 + this.#waitFor = undefined; 53 + this.#resolvePromise = undefined; 54 + } 55 + 56 + if (options.debugLog) { 57 + console.log(data); 58 + } 59 + } catch (e) { 60 + console.error(e); 61 + } 62 + }); 63 + 64 + this.#server = server; 65 + } 66 + 67 + sendCommand(command: Command, args?: Record<string, unknown>) { 68 + this.send({ command, arguments: args }); 69 + } 70 + 71 + send(data: {}) { 72 + const request = JSON.stringify({ 73 + seq: ++this.#seq, 74 + type: 'request', 75 + ...data, 76 + }); 77 + 78 + this.#server.stdin?.write(`${request}\n`); 79 + } 80 + 81 + waitForResponse = ( 82 + cb: ( 83 + response: ts.server.protocol.Response | ts.server.protocol.Event 84 + ) => boolean 85 + ) => { 86 + this.#waitFor = cb; 87 + return new Promise<void>(resolve => { 88 + this.#resolvePromise = resolve; 89 + }); 90 + }; 91 + 92 + close() { 93 + this.#server.kill(); 94 + } 95 + }
+66
test/e2e/smoke.test.ts
··· 1 + import { expect, afterEach, afterAll, beforeEach, it } from 'vitest'; 2 + import { TSServer } from './server'; 3 + import path from 'node:path'; 4 + import fs from 'node:fs'; 5 + import url from 'node:url'; 6 + import ts from 'typescript/lib/tsserverlibrary'; 7 + 8 + const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); 9 + 10 + const projectPath = path.resolve(__dirname, 'fixture-project'); 11 + 12 + let server: TSServer; 13 + beforeEach(() => { 14 + server = new TSServer(projectPath, { debugLog: false }); 15 + }); 16 + afterEach(() => { 17 + server.close(); 18 + }); 19 + 20 + const testFile = path.join(projectPath, 'simple.ts'); 21 + const generatedFile = path.join(projectPath, 'simple.generated.ts'); 22 + 23 + afterAll(() => { 24 + try { 25 + fs.unlinkSync(testFile); 26 + fs.unlinkSync(generatedFile); 27 + } catch {} 28 + }); 29 + 30 + it('passes simple smoke test', async () => { 31 + const fixtureFileContent = fs.readFileSync( 32 + path.resolve(testFile, '../fixtures/simple.ts'), 33 + 'utf-8' 34 + ); 35 + 36 + server.sendCommand('open', { 37 + file: testFile, 38 + fileContent: '// empty', 39 + scriptKindName: 'TS', 40 + } satisfies ts.server.protocol.OpenRequestArgs); 41 + 42 + server.sendCommand('updateOpen', { 43 + openFiles: [{ file: testFile, fileContent: fixtureFileContent }], 44 + } satisfies ts.server.protocol.UpdateOpenRequestArgs); 45 + 46 + server.sendCommand('saveto', { 47 + file: testFile, 48 + tmpfile: testFile, 49 + } satisfies ts.server.protocol.SavetoRequestArgs); 50 + 51 + await server.waitForResponse( 52 + response => response.type === 'event' && response.event === 'setTypings' 53 + ); 54 + 55 + expect(() => { 56 + fs.lstatSync(testFile); 57 + fs.lstatSync(generatedFile); 58 + }).not.toThrow(); 59 + 60 + expect(fs.readFileSync(testFile, 'utf-8')).toContain( 61 + `as typeof import('./simple.generated').AllPostsDocument` 62 + ); 63 + expect(fs.readFileSync(generatedFile, 'utf-8')).toContain( 64 + 'export const AllPostsDocument = ' 65 + ); 66 + }, 7500);
+11
test/e2e/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "esnext", 4 + "module": "esnext", 5 + "noEmit": true, 6 + "outDir": "dist", 7 + "strict": true, 8 + "esModuleInterop": true, 9 + "moduleResolution": "node" 10 + } 11 + }