Support TS/ESM config files (#738)
parent
5038f6d57b
commit
28b4abb644
|
@ -29,7 +29,7 @@
|
||||||
"debounce": "1.2.0",
|
"debounce": "1.2.0",
|
||||||
"deepmerge": "4.2.2",
|
"deepmerge": "4.2.2",
|
||||||
"detect-indent": "6.0.0",
|
"detect-indent": "6.0.0",
|
||||||
"detective": "5.2.0",
|
"detective-typescript": "9.0.0",
|
||||||
"dlv": "1.1.3",
|
"dlv": "1.1.3",
|
||||||
"dset": "3.1.2",
|
"dset": "3.1.2",
|
||||||
"enhanced-resolve-301": "0.0.1",
|
"enhanced-resolve-301": "0.0.1",
|
||||||
|
@ -4964,6 +4964,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@typescript-eslint/types": {
|
||||||
|
"version": "5.55.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz",
|
||||||
|
"integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==",
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "2.34.0",
|
"version": "2.34.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
|
||||||
|
@ -4990,6 +5002,30 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@typescript-eslint/visitor-keys": {
|
||||||
|
"version": "5.55.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz",
|
||||||
|
"integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@typescript-eslint/types": "5.55.0",
|
||||||
|
"eslint-visitor-keys": "^3.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@zkochan/cmd-shim": {
|
"node_modules/@zkochan/cmd-shim": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz",
|
||||||
|
@ -5424,6 +5460,14 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ast-module-types": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ast-types-flow": {
|
"node_modules/ast-types-flow": {
|
||||||
"version": "0.0.7",
|
"version": "0.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
|
||||||
|
@ -7716,20 +7760,113 @@
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/detective": {
|
"node_modules/detective-typescript": {
|
||||||
"version": "5.2.0",
|
"version": "9.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.0.0.tgz",
|
||||||
"integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
|
"integrity": "sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn-node": "^1.6.1",
|
"@typescript-eslint/typescript-estree": "^5.13.0",
|
||||||
"defined": "^1.0.0",
|
"ast-module-types": "^3.0.0",
|
||||||
"minimist": "^1.1.1"
|
"node-source-walk": "^5.0.0",
|
||||||
},
|
"typescript": "^4.5.5"
|
||||||
"bin": {
|
|
||||||
"detective": "bin/detective.js"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.8.0"
|
"node": "^12.20.0 || ^14.14.0 || >=16.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": {
|
||||||
|
"version": "5.55.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz",
|
||||||
|
"integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@typescript-eslint/types": "5.55.0",
|
||||||
|
"@typescript-eslint/visitor-keys": "5.55.0",
|
||||||
|
"debug": "^4.3.4",
|
||||||
|
"globby": "^11.1.0",
|
||||||
|
"is-glob": "^4.0.3",
|
||||||
|
"semver": "^7.3.7",
|
||||||
|
"tsutils": "^3.21.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"typescript": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/array-union": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/dir-glob": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
|
||||||
|
"dependencies": {
|
||||||
|
"path-type": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/fast-glob": {
|
||||||
|
"version": "3.2.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
|
||||||
|
"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
|
||||||
|
"dependencies": {
|
||||||
|
"@nodelib/fs.stat": "^2.0.2",
|
||||||
|
"@nodelib/fs.walk": "^1.2.3",
|
||||||
|
"glob-parent": "^5.1.2",
|
||||||
|
"merge2": "^1.3.0",
|
||||||
|
"micromatch": "^4.0.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/globby": {
|
||||||
|
"version": "11.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
|
||||||
|
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
|
||||||
|
"dependencies": {
|
||||||
|
"array-union": "^2.1.0",
|
||||||
|
"dir-glob": "^3.0.1",
|
||||||
|
"fast-glob": "^3.2.9",
|
||||||
|
"ignore": "^5.2.0",
|
||||||
|
"merge2": "^1.4.1",
|
||||||
|
"slash": "^3.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/ignore": {
|
||||||
|
"version": "5.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
|
||||||
|
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detective-typescript/node_modules/path-type": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dezalgo": {
|
"node_modules/dezalgo": {
|
||||||
|
@ -15416,6 +15553,17 @@
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
||||||
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
|
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
|
||||||
},
|
},
|
||||||
|
"node_modules/node-source-walk": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/parser": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/nopt": {
|
"node_modules/nopt": {
|
||||||
"version": "4.0.3",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
|
||||||
|
@ -25580,6 +25728,11 @@
|
||||||
"eslint-visitor-keys": "^1.1.0"
|
"eslint-visitor-keys": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@typescript-eslint/types": {
|
||||||
|
"version": "5.55.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz",
|
||||||
|
"integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug=="
|
||||||
|
},
|
||||||
"@typescript-eslint/typescript-estree": {
|
"@typescript-eslint/typescript-estree": {
|
||||||
"version": "2.34.0",
|
"version": "2.34.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
|
||||||
|
@ -25594,6 +25747,22 @@
|
||||||
"tsutils": "^3.17.1"
|
"tsutils": "^3.17.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@typescript-eslint/visitor-keys": {
|
||||||
|
"version": "5.55.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz",
|
||||||
|
"integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==",
|
||||||
|
"requires": {
|
||||||
|
"@typescript-eslint/types": "5.55.0",
|
||||||
|
"eslint-visitor-keys": "^3.3.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"eslint-visitor-keys": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@zkochan/cmd-shim": {
|
"@zkochan/cmd-shim": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz",
|
||||||
|
@ -25927,6 +26096,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
|
||||||
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
|
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
|
||||||
},
|
},
|
||||||
|
"ast-module-types": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ=="
|
||||||
|
},
|
||||||
"ast-types-flow": {
|
"ast-types-flow": {
|
||||||
"version": "0.0.7",
|
"version": "0.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
|
||||||
|
@ -27696,14 +27870,79 @@
|
||||||
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
|
||||||
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
|
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
|
||||||
},
|
},
|
||||||
"detective": {
|
"detective-typescript": {
|
||||||
"version": "5.2.0",
|
"version": "9.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.0.0.tgz",
|
||||||
"integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
|
"integrity": "sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"acorn-node": "^1.6.1",
|
"@typescript-eslint/typescript-estree": "^5.13.0",
|
||||||
"defined": "^1.0.0",
|
"ast-module-types": "^3.0.0",
|
||||||
"minimist": "^1.1.1"
|
"node-source-walk": "^5.0.0",
|
||||||
|
"typescript": "^4.5.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@typescript-eslint/typescript-estree": {
|
||||||
|
"version": "5.55.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz",
|
||||||
|
"integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==",
|
||||||
|
"requires": {
|
||||||
|
"@typescript-eslint/types": "5.55.0",
|
||||||
|
"@typescript-eslint/visitor-keys": "5.55.0",
|
||||||
|
"debug": "^4.3.4",
|
||||||
|
"globby": "^11.1.0",
|
||||||
|
"is-glob": "^4.0.3",
|
||||||
|
"semver": "^7.3.7",
|
||||||
|
"tsutils": "^3.21.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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=="
|
||||||
|
},
|
||||||
|
"dir-glob": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
|
||||||
|
"requires": {
|
||||||
|
"path-type": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fast-glob": {
|
||||||
|
"version": "3.2.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
|
||||||
|
"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
|
||||||
|
"requires": {
|
||||||
|
"@nodelib/fs.stat": "^2.0.2",
|
||||||
|
"@nodelib/fs.walk": "^1.2.3",
|
||||||
|
"glob-parent": "^5.1.2",
|
||||||
|
"merge2": "^1.3.0",
|
||||||
|
"micromatch": "^4.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"globby": {
|
||||||
|
"version": "11.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
|
||||||
|
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
|
||||||
|
"requires": {
|
||||||
|
"array-union": "^2.1.0",
|
||||||
|
"dir-glob": "^3.0.1",
|
||||||
|
"fast-glob": "^3.2.9",
|
||||||
|
"ignore": "^5.2.0",
|
||||||
|
"merge2": "^1.4.1",
|
||||||
|
"slash": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ignore": {
|
||||||
|
"version": "5.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
|
||||||
|
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
|
||||||
|
},
|
||||||
|
"path-type": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dezalgo": {
|
"dezalgo": {
|
||||||
|
@ -33690,6 +33929,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
|
||||||
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
|
"integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
|
||||||
},
|
},
|
||||||
|
"node-source-walk": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/parser": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nopt": {
|
"nopt": {
|
||||||
"version": "4.0.3",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
"culori": "0.20.1",
|
"culori": "0.20.1",
|
||||||
"debounce": "1.2.0",
|
"debounce": "1.2.0",
|
||||||
"deepmerge": "4.2.2",
|
"deepmerge": "4.2.2",
|
||||||
"detective": "5.2.0",
|
"detective-typescript": "9.0.0",
|
||||||
"dlv": "1.1.3",
|
"dlv": "1.1.3",
|
||||||
"dset": "3.1.2",
|
"dset": "3.1.2",
|
||||||
"enhanced-resolve-301": "0.0.1",
|
"enhanced-resolve-301": "0.0.1",
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
export const CONFIG_GLOB = '{tailwind,tailwind.config,tailwind.*.config,tailwind.config.*}.{js,cjs}'
|
export const CONFIG_GLOB =
|
||||||
|
'{tailwind,tailwind.config,tailwind.*.config,tailwind.config.*}.{js,cjs,ts,mjs}'
|
||||||
export const PACKAGE_LOCK_GLOB = '{package-lock.json,yarn.lock,pnpm-lock.yaml}'
|
export const PACKAGE_LOCK_GLOB = '{package-lock.json,yarn.lock,pnpm-lock.yaml}'
|
||||||
export const CSS_GLOB = '*.{css,scss,sass,less,pcss}'
|
export const CSS_GLOB = '*.{css,scss,sass,less,pcss}'
|
||||||
|
|
|
@ -608,6 +608,7 @@ async function createProjectService(
|
||||||
let pluginVersions: string | undefined
|
let pluginVersions: string | undefined
|
||||||
let browserslist: string[] | undefined
|
let browserslist: string[] | undefined
|
||||||
let resolveConfigFn: (config: any) => any
|
let resolveConfigFn: (config: any) => any
|
||||||
|
let loadConfigFn: (path: string) => any
|
||||||
let featureFlags: FeatureFlags = { future: [], experimental: [] }
|
let featureFlags: FeatureFlags = { future: [], experimental: [] }
|
||||||
let applyComplexClasses: any
|
let applyComplexClasses: any
|
||||||
|
|
||||||
|
@ -675,6 +676,10 @@ async function createProjectService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
loadConfigFn = require(resolveFrom(tailwindDir, './loadConfig.js'))
|
||||||
|
} catch {}
|
||||||
|
|
||||||
if (semver.gte(tailwindcssVersion, '1.4.0') && semver.lte(tailwindcssVersion, '1.99.0')) {
|
if (semver.gte(tailwindcssVersion, '1.4.0') && semver.lte(tailwindcssVersion, '1.99.0')) {
|
||||||
const browserslistPath = resolveFrom(tailwindDir, 'browserslist')
|
const browserslistPath = resolveFrom(tailwindDir, 'browserslist')
|
||||||
// TODO: set path to nearest dir with package.json?
|
// TODO: set path to nearest dir with package.json?
|
||||||
|
@ -810,6 +815,7 @@ async function createProjectService(
|
||||||
postcss: { version: postcssVersion, module: postcss },
|
postcss: { version: postcssVersion, module: postcss },
|
||||||
postcssSelectorParser: { module: postcssSelectorParser },
|
postcssSelectorParser: { module: postcssSelectorParser },
|
||||||
resolveConfig: { module: resolveConfigFn },
|
resolveConfig: { module: resolveConfigFn },
|
||||||
|
loadConfig: { module: loadConfigFn },
|
||||||
jit: jitModules,
|
jit: jitModules,
|
||||||
}
|
}
|
||||||
state.browserslist = browserslist
|
state.browserslist = browserslist
|
||||||
|
@ -893,7 +899,7 @@ async function createProjectService(
|
||||||
|
|
||||||
clearRequireCache()
|
clearRequireCache()
|
||||||
|
|
||||||
const { tailwindcss, postcss, resolveConfig } = state.modules
|
const { tailwindcss, postcss, resolveConfig, loadConfig } = state.modules
|
||||||
const sepLocation = semver.gte(tailwindcss.version, '0.99.0')
|
const sepLocation = semver.gte(tailwindcss.version, '0.99.0')
|
||||||
? ['separator']
|
? ['separator']
|
||||||
: ['options', 'separator']
|
: ['options', 'separator']
|
||||||
|
@ -901,8 +907,13 @@ async function createProjectService(
|
||||||
let originalConfig: any
|
let originalConfig: any
|
||||||
|
|
||||||
let isV3 = semver.gte(tailwindcss.version, '2.99.0')
|
let isV3 = semver.gte(tailwindcss.version, '2.99.0')
|
||||||
|
let hook: Hook
|
||||||
|
|
||||||
let hook = new Hook(fs.realpathSync(state.configPath), (exports) => {
|
if (loadConfig.module) {
|
||||||
|
originalConfig = await loadConfig.module(state.configPath)
|
||||||
|
state.jit = true
|
||||||
|
} else {
|
||||||
|
hook = new Hook(fs.realpathSync(state.configPath), (exports) => {
|
||||||
originalConfig = klona(exports)
|
originalConfig = klona(exports)
|
||||||
|
|
||||||
let separator = dlv(exports, sepLocation)
|
let separator = dlv(exports, sepLocation)
|
||||||
|
@ -981,6 +992,7 @@ async function createProjectService(
|
||||||
hook.unhook()
|
hook.unhook()
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!originalConfig) {
|
if (!originalConfig) {
|
||||||
throw new SilentError(`Failed to load config file: ${state.configPath}`)
|
throw new SilentError(`Failed to load config file: ${state.configPath}`)
|
||||||
|
@ -1029,14 +1041,14 @@ async function createProjectService(
|
||||||
delete state.classList
|
delete state.classList
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
hook.unhook()
|
hook?.unhook()
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
|
|
||||||
let postcssResult: Result
|
let postcssResult: Result
|
||||||
|
|
||||||
if (state.classList) {
|
if (state.classList) {
|
||||||
hook.unhook()
|
hook?.unhook()
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
postcssResult = await postcss
|
postcssResult = await postcss
|
||||||
|
@ -1060,7 +1072,7 @@ async function createProjectService(
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error
|
throw error
|
||||||
} finally {
|
} finally {
|
||||||
hook.unhook()
|
hook?.unhook()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1703,6 +1715,13 @@ class TW {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
(configPath.endsWith('.ts') || configPath.endsWith('.mjs')) &&
|
||||||
|
!semver.gte(twVersion, '3.3.0')
|
||||||
|
) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
configTailwindVersionMap.set(configPath, twVersion)
|
configTailwindVersionMap.set(configPath, twVersion)
|
||||||
|
|
||||||
let contentSelector: Array<DocumentSelector> = []
|
let contentSelector: Array<DocumentSelector> = []
|
||||||
|
|
|
@ -1,47 +1,41 @@
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
import resolve from 'resolve'
|
import resolve from 'resolve'
|
||||||
import detective from 'detective'
|
import detective from 'detective-typescript'
|
||||||
import normalizePath from 'normalize-path'
|
import normalizePath from 'normalize-path'
|
||||||
|
|
||||||
export function getModuleDependencies(modulePath: string): string[] {
|
function createModule(file: string): { file: string; requires: string[] } {
|
||||||
return _getModuleDependencies(modulePath)
|
let source = fs.readFileSync(file, 'utf-8')
|
||||||
.map(({ file }) => file)
|
return { file, requires: detective(source, { mixedImports: true }) }
|
||||||
.filter((file) => file !== modulePath)
|
|
||||||
.map((file) => normalizePath(file))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createModule(file) {
|
function* _getModuleDependencies(entryFile: string): Generator<string> {
|
||||||
const source = fs.readFileSync(file, 'utf-8')
|
yield entryFile
|
||||||
const requires = detective(source)
|
|
||||||
|
|
||||||
return { file, requires }
|
let mod = createModule(entryFile)
|
||||||
}
|
|
||||||
|
|
||||||
function _getModuleDependencies(entryFile) {
|
let ext = path.extname(entryFile)
|
||||||
const rootModule = createModule(entryFile)
|
let isTypeScript = ext === '.ts' || ext === '.cts' || ext === '.mts'
|
||||||
const modules = [rootModule]
|
let extensions = [...(isTypeScript ? ['.ts', '.cts', '.mts'] : []), '.js', '.cjs', '.mjs']
|
||||||
|
|
||||||
// Iterate over the modules, even when new
|
// Iterate over the modules, even when new
|
||||||
// ones are being added
|
// ones are being added
|
||||||
for (const mdl of modules) {
|
for (let dep of mod.requires) {
|
||||||
mdl.requires
|
|
||||||
.filter((dep) => {
|
|
||||||
// Only track local modules, not node_modules
|
// Only track local modules, not node_modules
|
||||||
return dep.startsWith('./') || dep.startsWith('../')
|
if (!dep.startsWith('./') && !dep.startsWith('../')) {
|
||||||
})
|
continue
|
||||||
.forEach((dep) => {
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const basedir = path.dirname(mdl.file)
|
let basedir = path.dirname(mod.file)
|
||||||
const depPath = resolve.sync(dep, { basedir })
|
let depPath = resolve.sync(dep, { basedir, extensions })
|
||||||
const depModule = createModule(depPath)
|
yield* _getModuleDependencies(depPath)
|
||||||
|
} catch {}
|
||||||
modules.push(depModule)
|
|
||||||
} catch (_err) {
|
|
||||||
// eslint-disable-next-line no-empty
|
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
}
|
|
||||||
|
export function getModuleDependencies(entryFile: string): string[] {
|
||||||
return modules
|
return Array.from(_getModuleDependencies(entryFile))
|
||||||
|
.filter((file) => file !== entryFile)
|
||||||
|
.map((file) => normalizePath(file))
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,6 +105,7 @@ export interface State {
|
||||||
postcss?: { version: string; module: Postcss }
|
postcss?: { version: string; module: Postcss }
|
||||||
postcssSelectorParser?: { module: any }
|
postcssSelectorParser?: { module: any }
|
||||||
resolveConfig?: { module: any }
|
resolveConfig?: { module: any }
|
||||||
|
loadConfig?: { module: any }
|
||||||
jit?: {
|
jit?: {
|
||||||
generateRules: { module: any }
|
generateRules: { module: any }
|
||||||
createContext: { module: any }
|
createContext: { module: any }
|
||||||
|
|
Loading…
Reference in New Issue