From e7383c99595ebb9d787530ecc730d04b882a2ed2 Mon Sep 17 00:00:00 2001 From: Andrew Eisenberg Date: Wed, 25 Aug 2021 10:45:44 -0700 Subject: [PATCH] Upgrade linguist dependency This version changes how it counts python heredoc. All heredoc is counted as code. --- node_modules/.package-lock.json | 10 +- node_modules/github-linguist/.eslintcache | 1 + node_modules/github-linguist/.eslintrc.js | 37 ++- .../github-linguist/.github/workflows/ci.yml | 22 +- node_modules/github-linguist/.prettierrc.js | 16 +- .../github-linguist/.vscode/launch.json | 17 +- node_modules/github-linguist/README.md | 2 +- node_modules/github-linguist/dist/cli.js | 8 +- node_modules/github-linguist/dist/cli.js.map | 2 +- .../github-linguist/dist/directory.js | 43 ++-- .../github-linguist/dist/directory.js.map | 2 +- node_modules/github-linguist/dist/file.js | 29 +-- node_modules/github-linguist/dist/file.js.map | 2 +- node_modules/github-linguist/dist/index.js | 1 - .../github-linguist/dist/index.js.map | 2 +- .../github-linguist/dist/languages.d.ts | 16 +- .../github-linguist/dist/languages.js | 139 +++++------ .../github-linguist/dist/languages.js.map | 2 +- node_modules/github-linguist/dist/utils.js | 1 - .../github-linguist/dist/utils.js.map | 2 +- node_modules/github-linguist/jest.config.ts | 14 ++ node_modules/github-linguist/package.json | 26 +- node_modules/github-linguist/src/cli.ts | 8 +- .../github-linguist/src/declarations.d.ts | 2 + node_modules/github-linguist/src/directory.ts | 53 ++-- node_modules/github-linguist/src/file.ts | 37 ++- node_modules/github-linguist/src/index.ts | 5 +- node_modules/github-linguist/src/languages.ts | 228 +++++++++--------- node_modules/github-linguist/src/utils.ts | 1 - node_modules/github-linguist/tsconfig.json | 5 +- package-lock.json | 18 +- package.json | 2 +- 32 files changed, 414 insertions(+), 339 deletions(-) create mode 100644 node_modules/github-linguist/.eslintcache create mode 100644 node_modules/github-linguist/jest.config.ts create mode 100644 node_modules/github-linguist/src/declarations.d.ts diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index d3b8aff291..9bbb744de4 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1451,6 +1451,7 @@ "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -2960,9 +2961,9 @@ } }, "node_modules/github-linguist": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/github-linguist/-/github-linguist-2.4.3.tgz", - "integrity": "sha512-hKWn1QQ+9oUyOIcUhPzi6AxTcAkYHg4OOwK79Pr05SBTFmdNr7GQkMDJabSGCZwu7SDhEb5YeUwUGqrUfyo7PA==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/github-linguist/-/github-linguist-2.4.4.tgz", + "integrity": "sha512-QSw/HfSTqA13t7eqNeGLd62ghnTsTQAUrJQKkUG100NZqqzpsKB9c7gH7lFaGU1ZWGmNSWfhG6q1Ok/xotOA/g==", "dependencies": { "chalk": "^2.2.0", "commander": "^2.11.0", @@ -3652,6 +3653,9 @@ "node_modules/jsonfile": { "version": "4.0.0", "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.6" + }, "optionalDependencies": { "graceful-fs": "^4.1.6" } diff --git a/node_modules/github-linguist/.eslintcache b/node_modules/github-linguist/.eslintcache new file mode 100644 index 0000000000..4a75de96cb --- /dev/null +++ b/node_modules/github-linguist/.eslintcache @@ -0,0 +1 @@ +[{"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/cli.ts":"1","/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/directory.ts":"2","/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/file.ts":"3","/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/index.ts":"4","/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/languages.ts":"5","/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/utils.ts":"6","/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/declarations.d.ts":"7"},{"size":1802,"mtime":1629757721099,"results":"8","hashOfConfig":"9"},{"size":4764,"mtime":1629758968321,"results":"10","hashOfConfig":"9"},{"size":4177,"mtime":1629759033403,"results":"11","hashOfConfig":"9"},{"size":751,"mtime":1629758749896,"results":"12","hashOfConfig":"9"},{"size":5651,"mtime":1629759502034,"results":"13","hashOfConfig":"14"},{"size":541,"mtime":1629758671936,"results":"15","hashOfConfig":"9"},{"size":25,"mtime":1629758437358,"results":"16","hashOfConfig":"9"},{"filePath":"17","messages":"18","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1ug2nbr",{"filePath":"19","messages":"20","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"21","messages":"22","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"23","messages":"24","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"25","messages":"26","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"1okz2by",{"filePath":"27","messages":"28","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"29","messages":"30","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/cli.ts",[],"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/directory.ts",[],"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/file.ts",[],"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/index.ts",[],"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/languages.ts",["31"],"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/utils.ts",[],"/Users/andrew.eisenberg/Eclipse/git-repos/linguist/src/declarations.d.ts",[],{"ruleId":"32","severity":2,"message":"33","line":4,"column":21,"nodeType":"34","messageId":"35","endLine":4,"endColumn":44},"@typescript-eslint/no-var-requires","Require statement not part of import statement.","CallExpression","noVarReqs"] \ No newline at end of file diff --git a/node_modules/github-linguist/.eslintrc.js b/node_modules/github-linguist/.eslintrc.js index 4594b11a3d..5291157c44 100644 --- a/node_modules/github-linguist/.eslintrc.js +++ b/node_modules/github-linguist/.eslintrc.js @@ -1,3 +1,38 @@ module.exports = { - extends: [require.resolve('@umijs/fabric/dist/eslint')], + root: true, + extends: [ + 'eslint-config-airbnb-base', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + parser: '@typescript-eslint/parser', + env: { + node: true, + es6: true, + jest: true, + }, + settings: { + 'import/resolver': { + node: { + extensions: ['.js', '.ts'] + } + } + }, + rules: { + 'import/extensions': 'off', + 'no-await-in-loop': 'off', + 'no-console': 'off', + 'class-methods-use-this': 'off', + 'no-continue': 'off', + '@typescript-eslint/naming-convention': { format: 'camelCase' }, + '@typescript-eslint/explicit-member-accessibility': 0, + '@typescript-eslint/interface-name-prefix': 0, + '@typescript-eslint/no-explicit-any': 0, + '@typescript-eslint/explicit-module-boundary-types': 0, + '@typescript-eslint/naming-convention': 0, + '@typescript-eslint/no-unused-vars': [ + 'error', + { vars: 'all', args: 'after-used', ignoreRestSiblings: true }, + ], + }, }; diff --git a/node_modules/github-linguist/.github/workflows/ci.yml b/node_modules/github-linguist/.github/workflows/ci.yml index 165462018b..01ef8f4ac6 100644 --- a/node_modules/github-linguist/.github/workflows/ci.yml +++ b/node_modules/github-linguist/.github/workflows/ci.yml @@ -1,26 +1,34 @@ name: Node CI -on: [push] +on: + - push + - workflow_dispatch jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: - node_version: [10.x, 12.x] + node_version: [12.x, 14.x] os: [ubuntu-latest, windows-latest] steps: + - run: git config --global core.autocrlf false + if: matrix.os == 'windows-latest' + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node_version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node_version }} + - run: echo ${{github.ref}} - - run: yarn - - run: yarn run lint - - run: yarn run test + + - run: npm ci + + - run: npm run lint + + - run: npm run test env: - CI: true PROGRESS: none NODE_ENV: test - NODE_OPTIONS: --max_old_space_size=4096 diff --git a/node_modules/github-linguist/.prettierrc.js b/node_modules/github-linguist/.prettierrc.js index 7b597d7891..7f4f9aa9b7 100644 --- a/node_modules/github-linguist/.prettierrc.js +++ b/node_modules/github-linguist/.prettierrc.js @@ -1,5 +1,15 @@ -const fabric = require('@umijs/fabric'); - module.exports = { - ...fabric.prettier, + singleQuote: true, + trailingComma: 'all', + printWidth: 100, + proseWrap: 'never', + endOfLine: 'lf', + overrides: [ + { + files: '.prettierrc', + options: { + parser: 'json', + }, + }, + ], }; diff --git a/node_modules/github-linguist/.vscode/launch.json b/node_modules/github-linguist/.vscode/launch.json index 761bf3b1aa..3443723cac 100644 --- a/node_modules/github-linguist/.vscode/launch.json +++ b/node_modules/github-linguist/.vscode/launch.json @@ -6,26 +6,13 @@ "configurations": [ { "name": "Launch Tests", - "program": "${workspaceFolder}/node_modules/.bin/umi-test", + "program": "${workspaceFolder}/node_modules/.bin/jest", "request": "launch", "skipFiles": [ "/**" ], "type": "pwa-node", - "args": ["--testNamePattern", "example dir info"] - }, - { - "type": "pwa-node", - "request": "launch", - "name": "Launch Program", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}/dist/index.js", - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": [ - "${workspaceFolder}/dist/**/*.js" - ] + "args": ["--testNamePattern", "example dir info"] } ] } diff --git a/node_modules/github-linguist/README.md b/node_modules/github-linguist/README.md index 29b12ef835..7cf04fb45c 100644 --- a/node_modules/github-linguist/README.md +++ b/node_modules/github-linguist/README.md @@ -63,7 +63,7 @@ const dir = new LocDir({ include: // string or string[] containing path patterns to include (default include all) exclude: // string or string[] containing path patterns to exclude (default exclude none) }); -const { info } = dir.getInfo(); +const { info } = dir.loadInfo(); ``` ## License diff --git a/node_modules/github-linguist/dist/cli.js b/node_modules/github-linguist/dist/cli.js index 5b8a6a85ba..5b1412d5e9 100755 --- a/node_modules/github-linguist/dist/cli.js +++ b/node_modules/github-linguist/dist/cli.js @@ -15,7 +15,7 @@ commander_1.default .description('count lines of code in a file') .action(async (pathPattern) => { try { - const info = await (new file_1.LocFile(pathPattern).getFileInfo()); + const info = await new file_1.LocFile(pathPattern).getFileInfo(); // eslint-disable-next-line no-console console.log(chalk_1.default.cyan(` path: \t\t${pathPattern} @@ -42,9 +42,9 @@ const formatInfo = (info, languages) => ` .join('')}`; commander_1.default.arguments(' [env]').action(async (cmd) => { try { - const { info, languages } = await (new directory_1.LocDir({ - include: cmd - }).loadInfo()); + const { info, languages } = await new directory_1.LocDir({ + include: cmd, + }).loadInfo(); // eslint-disable-next-line no-console console.log(chalk_1.default.cyan(formatInfo(info, languages))); } diff --git a/node_modules/github-linguist/dist/cli.js.map b/node_modules/github-linguist/dist/cli.js.map index 40080678f0..968e3aa2ff 100644 --- a/node_modules/github-linguist/dist/cli.js.map +++ b/node_modules/github-linguist/dist/cli.js.map @@ -1 +1 @@ -{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,0DAAgC;AAEhC,2CAAqC;AACrC,iCAA2C;AAC3C,mCAAqC;AAErC,mBAAO;KACJ,OAAO,CAAC,kBAAU,EAAE,EAAE,IAAI,CAAC;KAC3B,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;IAC5B,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,cAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5D,sCAAsC;QACtC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC;oBACC,WAAW;sBACT,IAAI,CAAC,SAAS;yBACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;wBACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;2BACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;OAC9C,CAAC,CACD,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACxB;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,CACjB,IAAc,EACd,SAIC,EACD,EAAE,CAAC;qBACgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;uBACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;0BACjB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KAC3C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACX,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,MAAM,CACtF,YAAY,CAAC,KAAK,CACnB,eAAe,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AACtF,CAAC,CAAC;KACD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhB,mBAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACpD,IAAI;QACF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,kBAAM,CAAC;YAC5C,OAAO,EAAE,GAAG;SACb,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;KACtD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACxB;AACH,CAAC,CAAC,CAAC;AAEH,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,0DAAgC;AAEhC,2CAAqC;AACrC,iCAA2C;AAC3C,mCAAqC;AAErC,mBAAO;KACJ,OAAO,CAAC,kBAAU,EAAE,EAAE,IAAI,CAAC;KAC3B,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;IAC5B,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,cAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,sCAAsC;QACtC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC;oBACC,WAAW;sBACT,IAAI,CAAC,SAAS;yBACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;wBACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;2BACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;OAC9C,CAAC,CACD,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACxB;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,CACjB,IAAc,EACd,SAIC,EACD,EAAE,CAAC;qBACgB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;uBACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;0BACjB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KAC3C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACX,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,MAAM,CACtF,YAAY,CAAC,KAAK,CACnB,eAAe,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AACtF,CAAC,CAAC;KACD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAEhB,mBAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACpD,IAAI;QACF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,kBAAM,CAAC;YAC3C,OAAO,EAAE,GAAG;SACb,CAAC,CAAC,QAAQ,EAAE,CAAC;QACd,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;KACtD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACxB;AACH,CAAC,CAAC,CAAC;AAEH,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/github-linguist/dist/directory.js b/node_modules/github-linguist/dist/directory.js index b5d8a2f97a..1b2500d657 100644 --- a/node_modules/github-linguist/dist/directory.js +++ b/node_modules/github-linguist/dist/directory.js @@ -7,7 +7,6 @@ exports.LocDir = void 0; const globby_1 = __importDefault(require("globby")); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); -// @ts-ignore const slash2_1 = __importDefault(require("slash2")); const file_1 = require("./file"); const languages_1 = require("./languages"); @@ -26,16 +25,16 @@ const defaultExclude = [ '**/*.snap', // java '**/target', - "**/*.class", - "**/*.o", - "**/bin", - "**/*.map", + '**/*.class', + '**/*.o', + '**/bin', + '**/*.map', // python - "**/*.pyc", - "**/*.pyo", + '**/*.pyc', + '**/*.pyo', // other - "**/*.dil", - "**/*.ra", + '**/*.dil', + '**/*.ra', // images '**/*.png', '**/*.jpg', @@ -97,6 +96,12 @@ const defaultExclude = [ '**/*.tbz', '**/*.tgz', ]; +function ensureArray(arr, dfault) { + if (!arr) { + return dfault ? [dfault] : []; + } + return Array.isArray(arr) ? arr : [arr]; +} /** * Collect the info of a directory. */ @@ -136,12 +141,12 @@ class LocDir { // that end in .ts because the globstar indicates 0 or more directory paths. this.exclude = ensureArray(options.exclude) .concat(defaultExclude) - .map(item => item.endsWith('**') ? item : `${item}/**`); + .map((item) => (item.endsWith('**') ? item : `${item}/**`)); // remove all leading './' since this messes up globstar matches in the // excludes. this.include = ensureArray(options.include, '**') - .map(item => item.startsWith('./') ? item.substring(2) : item) - .map(item => item.endsWith('**') ? item : `${item}/**`); + .map((item) => (item.startsWith('./') ? item.substring(2) : item)) + .map((item) => (item.endsWith('**') ? item : `${item}/**`)); this.cwd = options.cwd || process.cwd(); this.analysisLanguages = options.analysisLanguages; } @@ -152,13 +157,14 @@ class LocDir { const paths = await globby_1.default(this.include, { cwd: this.cwd, ignore: this.exclude, - nodir: true + nodir: true, }); const files = []; const info = { ...defaultInfo }; let languages = {}; // We _could_ use Promise.all to count the files in parallel, but that // would lead to out of memory errors when there are many files. + // eslint-disable-next-line no-restricted-syntax for (const pathItem of paths) { const fullPath = slash2_1.default(path_1.default.join(this.cwd, pathItem)); if (!pathItem || @@ -195,16 +201,9 @@ class LocDir { * and this language is not one of them. */ ignoreLanguage(pathItem) { - return this.analysisLanguages && !this.analysisLanguages.includes(this.allLanguages.getType(pathItem)); + return (this.analysisLanguages && + !this.analysisLanguages.includes(this.allLanguages.getType(pathItem))); } } exports.LocDir = LocDir; -function ensureArray(arr, dfault) { - if (!arr) { - return dfault ? [dfault] : []; - } - return Array.isArray(arr) - ? arr - : [arr]; -} //# sourceMappingURL=directory.js.map \ No newline at end of file diff --git a/node_modules/github-linguist/dist/directory.js.map b/node_modules/github-linguist/dist/directory.js.map index 6f242963e4..c9447a9447 100644 --- a/node_modules/github-linguist/dist/directory.js.map +++ b/node_modules/github-linguist/dist/directory.js.map @@ -1 +1 @@ -{"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/github-linguist/dist/file.js b/node_modules/github-linguist/dist/file.js index 56fae59b31..e7b60117ae 100644 --- a/node_modules/github-linguist/dist/file.js +++ b/node_modules/github-linguist/dist/file.js @@ -27,8 +27,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.LocFile = void 0; const fs = __importStar(require("fs-extra")); -const Path = __importStar(require("path")); -// @ts-ignore const slash2_1 = __importDefault(require("slash2")); const languages_1 = require("./languages"); const DefaultLine = { @@ -84,15 +82,16 @@ class LocFile { let codeLength = lines.length; const total = codeLength; let inMultiLineComment = false; - lines.forEach((line) => { + lines.forEach((origLine) => { + var _a, _b, _c, _d, _e, _f; let lineType = 'code'; - line = line.trim(); + const line = origLine.trim(); if (inMultiLineComment) { let noCode = true; - if (regexes.multiLineCommentClose.test(line)) { + if ((_a = regexes.multiLineCommentClose) === null || _a === void 0 ? void 0 : _a.test(line)) { // line contains the end of a multi-line comment inMultiLineComment = false; - if (!regexes.multiLineCommentCloseEnd.test(line)) { + if (!((_b = regexes.multiLineCommentCloseEnd) === null || _b === void 0 ? void 0 : _b.test(line))) { // the multiline comment does not end this line. // there is real code on it. noCode = false; @@ -106,21 +105,21 @@ class LocFile { } else if (line) { // non-empty line - if (regexes.multiLineCommentOpen.test(line)) { + if ((_c = regexes.multiLineCommentOpen) === null || _c === void 0 ? void 0 : _c.test(line)) { // line contains the start of a multi-line comment // might contain some real code, but we'll let that slide - if (!regexes.multiLineCommentOpenAndClose.test(line)) { + if (!((_d = regexes.multiLineCommentOpenAndClose) === null || _d === void 0 ? void 0 : _d.test(line))) { // comment is not also closed on this line inMultiLineComment = true; } - if (regexes.multiLineCommentOpenStart.test(line)) { + if ((_e = regexes.multiLineCommentOpenStart) === null || _e === void 0 ? void 0 : _e.test(line)) { // The comment starts the line. There is no other code on this line commentLength += 1; codeLength -= 1; lineType = 'comm'; } } - else if (regexes.singleLineComment.test(line)) { + else if ((_f = regexes.singleLineComment) === null || _f === void 0 ? void 0 : _f.test(line)) { // line contains only a single line comment commentLength += 1; codeLength -= 1; @@ -155,14 +154,16 @@ class LocFile { throw new Error(`Error: file ${this.rawPath} does not exist.`); } let newData = data; - const info = Object.assign({}, DefaultFileInfo); - const name = this.path.split(Path.sep).pop() || ''; + const info = { ...DefaultFileInfo }; + // note: do not use Path.sep here since we have already + // translated the path to a posix path using slash(...). + const name = this.path.split('/').pop() || ''; try { const stat = await fs.stat(this.path); if (!stat.isFile()) { return info; } - newData = data || await fs.readFile(this.path, 'utf-8'); + newData = data || (await fs.readFile(this.path, 'utf-8')); info.name = name; info.size = (stat && stat.size) || 0; info.languages = this.languages.getType(this.path); @@ -180,7 +181,7 @@ class LocFile { return info; } getFileInfoByContent(name, data) { - const info = Object.assign({}, DefaultFileInfo); + const info = { ...DefaultFileInfo }; info.name = name; info.languages = this.languages.getType(name); info.lines = this.filterData(data, this.languages.getRegexes(info.languages)); diff --git a/node_modules/github-linguist/dist/file.js.map b/node_modules/github-linguist/dist/file.js.map index bd35faa7e0..b56d07f33e 100644 --- a/node_modules/github-linguist/dist/file.js.map +++ b/node_modules/github-linguist/dist/file.js.map @@ -1 +1 @@ -{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/github-linguist/dist/index.js b/node_modules/github-linguist/dist/index.js index 3f8f0a9131..9508255a52 100644 --- a/node_modules/github-linguist/dist/index.js +++ b/node_modules/github-linguist/dist/index.js @@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -// @ts-ignore const slash2_1 = __importDefault(require("slash2")); const fs_extra_1 = __importDefault(require("fs-extra")); const directory_1 = require("./directory"); diff --git a/node_modules/github-linguist/dist/index.js.map b/node_modules/github-linguist/dist/index.js.map index 135e3603af..2be7226ecf 100644 --- a/node_modules/github-linguist/dist/index.js.map +++ b/node_modules/github-linguist/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,aAAa;AACb,oDAA2B;AAC3B,wDAA0B;AAE1B,2CAAgD;AAChD,iCAAiC;AAEjC,yCAAoD;AAA3C,mGAAA,MAAM,OAAA;AACf,+BAA2C;AAAlC,+FAAA,OAAO,OAAA;AAEhB,MAAM,GAAG,GAAG,KAAK,EACf,SAAiB,EACG,EAAE;IACtB,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,gBAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,gBAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;SAC3D,CAAC;KACH;IACD,MAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,EAAE,GAAG,EAAE,gBAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,wDAA0B;AAE1B,2CAAgD;AAChD,iCAAiC;AAEjC,yCAAoD;AAA3C,mGAAA,MAAM,OAAA;AACf,+BAA2C;AAAlC,+FAAA,OAAO,OAAA;AAEhB,MAAM,GAAG,GAAG,KAAK,EAAE,SAAiB,EAAsB,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,gBAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,gBAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;SAC3D,CAAC;KACH;IACD,MAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,EAAE,GAAG,EAAE,gBAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/node_modules/github-linguist/dist/languages.d.ts b/node_modules/github-linguist/dist/languages.d.ts index 442fa1f3ba..142ee1461f 100644 --- a/node_modules/github-linguist/dist/languages.d.ts +++ b/node_modules/github-linguist/dist/languages.d.ts @@ -1,4 +1,10 @@ -export interface DetectorOptions { +export interface Regexes { + singleLineComment: RegExp; + multiLineCommentOpen?: RegExp; + multiLineCommentOpenStart?: RegExp; + multiLineCommentClose?: RegExp; + multiLineCommentCloseEnd?: RegExp; + multiLineCommentOpenAndClose?: RegExp; } /** * detecte program language through file extension @@ -37,11 +43,3 @@ export declare class Languages { */ getType(path: string): string; } -export interface Regexes { - singleLineComment: RegExp; - multiLineCommentOpen: RegExp; - multiLineCommentOpenStart: RegExp; - multiLineCommentClose: RegExp; - multiLineCommentCloseEnd: RegExp; - multiLineCommentOpenAndClose: RegExp; -} diff --git a/node_modules/github-linguist/dist/languages.js b/node_modules/github-linguist/dist/languages.js index d2134265ed..d4a10d502f 100644 --- a/node_modules/github-linguist/dist/languages.js +++ b/node_modules/github-linguist/dist/languages.js @@ -1,9 +1,11 @@ "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Languages = void 0; +const languages_json_1 = __importDefault(require("language-map/languages.json")); const utils_1 = require("./utils"); -// tslint:disable-next-line -const languageMap = require('language-map'); /** * The extension map can contain multiple languages with the same extension, * but we only want a single one. For the moment, these clashes are resolved @@ -12,7 +14,70 @@ const languageMap = require('language-map'); * where the extension is ambiguous. The ordering of the list matters and * languages earlier on will get a higher priority when resolving clashes. */ -const importantLanguages = ["javascript", "typescript", "ruby", "python", "java", "c", "c++", "c#", "rust", "scala", "perl", "go"]; +const importantLanguages = [ + 'javascript', + 'typescript', + 'ruby', + 'python', + 'java', + 'c', + 'c++', + 'c#', + 'rust', + 'scala', + 'perl', + 'go', +]; +const ALL_REGEXES = { + c: { + // matches when // are the first two characters of a line + singleLineComment: /^\/\//, + // matches when /* exists in a line + multiLineCommentOpen: /\/\*/, + // matches when /* starts a line + multiLineCommentOpenStart: /^\/\*/, + // matches when */ exists a line + multiLineCommentClose: /\*\//, + // matches when */ ends a line + multiLineCommentCloseEnd: /\*\/$/, + // matches /* ... */ + multiLineCommentOpenAndClose: /\/\*.*\*\//, + }, + python: { + // matches when # the first character of a line + singleLineComment: /^#/, + }, + ruby: { + // matches when # the first character of a line + singleLineComment: /^#/, + // For ruby multiline comments, =begin and =end must be + // on their own lines + // matches when =begin starts a line + multiLineCommentOpen: /^=begin/, + // matches when "begin starts a line + multiLineCommentOpenStart: /^=begin/, + // matches when "end ends a line + multiLineCommentClose: /^=end/, + // matches when "end ends a line + multiLineCommentCloseEnd: /^=end$/, + // not possible in ruby + multiLineCommentOpenAndClose: /^\0$/, + }, + html: { + // There is no single line comment + singleLineComment: /^\0$/, + // matches when =begin starts a line + multiLineCommentOpen: //, + // matches when "end ends a line + multiLineCommentCloseEnd: /-->$/, + // matches + multiLineCommentOpenAndClose: //, + }, +}; /** * detecte program language through file extension * @@ -39,8 +104,8 @@ class Languages { writable: true, value: () => { const extensions = {}; - Object.keys(languageMap).forEach((language) => { - const languageMode = languageMap[language]; + Object.keys(languages_json_1.default).forEach((language) => { + const languageMode = languages_json_1.default[language]; const languageExtensions = (languageMode && languageMode.extensions) || []; languageExtensions.forEach((extension) => { const lowerCaseExtension = extension.toLowerCase(); @@ -61,7 +126,7 @@ class Languages { } }); }); - return Object.assign({}, extensions, utils_1.ExtensionJustify); + return { ...extensions, ...utils_1.ExtensionJustify }; } }); this.extensionMap = this.loadExtensionMap(); @@ -102,66 +167,4 @@ class Languages { } } exports.Languages = Languages; -const ALL_REGEXES = { - c: { - // matches when // are the first two characters of a line - singleLineComment: /^\/\//, - // matches when /* exists in a line - multiLineCommentOpen: /\/\*/, - // matches when /* starts a line - multiLineCommentOpenStart: /^\/\*/, - // matches when */ exists a line - multiLineCommentClose: /\*\//, - // matches when */ ends a line - multiLineCommentCloseEnd: /\*\/$/, - // matches /* ... */ - multiLineCommentOpenAndClose: /\/\*.*\*\// - }, - python: { - // matches when # the first character of a line - singleLineComment: /^#/, - // matches when """ starts a line. This is not right, since - // a multiline string is not always a comment, but for the - // sake of simplicity, we will do that here. - multiLineCommentOpen: /"""/, - // matches when """ starts a line - multiLineCommentOpenStart: /^"""/, - // matches when """ exists in a line - multiLineCommentClose: /"""/, - // matches when """ ends a line - multiLineCommentCloseEnd: /"""$/, - // matches """ ... """ - multiLineCommentOpenAndClose: /""".*"""/ - }, - ruby: { - // matches when # the first character of a line - singleLineComment: /^#/, - // For ruby multiline comments, =begin and =end must be - // on their own lines - // matches when =begin starts a line - multiLineCommentOpen: /^=begin/, - // matches when "begin starts a line - multiLineCommentOpenStart: /^=begin/, - // matches when "end ends a line - multiLineCommentClose: /^=end/, - // matches when "end ends a line - multiLineCommentCloseEnd: /^=end$/, - // not possible in ruby - multiLineCommentOpenAndClose: /^\0$/ - }, - html: { - // There is no single line comment - singleLineComment: /^\0$/, - // matches when =begin starts a line - multiLineCommentOpen: //, - // matches when "end ends a line - multiLineCommentCloseEnd: /-->$/, - // matches - multiLineCommentOpenAndClose: // - } -}; //# sourceMappingURL=languages.js.map \ No newline at end of file diff --git a/node_modules/github-linguist/dist/languages.js.map b/node_modules/github-linguist/dist/languages.js.map index 83e903bff6..565aad29b9 100644 --- a/node_modules/github-linguist/dist/languages.js.map +++ b/node_modules/github-linguist/dist/languages.js.map @@ -1 +1 @@ -{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/github-linguist/dist/utils.js b/node_modules/github-linguist/dist/utils.js index 606da35e8f..8dc4f4112a 100644 --- a/node_modules/github-linguist/dist/utils.js +++ b/node_modules/github-linguist/dist/utils.js @@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.ExtensionJustify = exports.getVersion = void 0; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); -// @ts-ignore const slash2_1 = __importDefault(require("slash2")); const packagePath = slash2_1.default(path_1.default.join(__dirname, '../', 'package.json')); /** diff --git a/node_modules/github-linguist/dist/utils.js.map b/node_modules/github-linguist/dist/utils.js.map index d90a5cf3a3..4e76e613aa 100644 --- a/node_modules/github-linguist/dist/utils.js.map +++ b/node_modules/github-linguist/dist/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,aAAa;AACb,oDAA2B;AAE3B,MAAM,WAAW,GAAG,gBAAK,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,SAAgB,UAAU;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAErE,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC;AACpE,CAAC;AAJD,gCAIC;AAEY,QAAA,gBAAgB,GAAG;IAC9B,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;CACrB,CAAC"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,oDAA2B;AAE3B,MAAM,WAAW,GAAG,gBAAK,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,SAAgB,UAAU;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAErE,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC;AACpE,CAAC;AAJD,gCAIC;AAEY,QAAA,gBAAgB,GAAG;IAC9B,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;CACrB,CAAC"} \ No newline at end of file diff --git a/node_modules/github-linguist/jest.config.ts b/node_modules/github-linguist/jest.config.ts new file mode 100644 index 0000000000..9c6fec0ad2 --- /dev/null +++ b/node_modules/github-linguist/jest.config.ts @@ -0,0 +1,14 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +export default { + // Automatically clear mock calls and instances between every test + clearMocks: true, + + // Indicates whether each individual test should be reported during the run + verbose: undefined, + + preset: 'ts-jest', +}; diff --git a/node_modules/github-linguist/package.json b/node_modules/github-linguist/package.json index 2c15e1a46f..ceefe403f8 100644 --- a/node_modules/github-linguist/package.json +++ b/node_modules/github-linguist/package.json @@ -1,12 +1,11 @@ { "name": "github-linguist", - "version": "2.4.3", + "version": "2.4.4", "description": "A tool to count lines of code in a repository powered by github-linguist langauge mappings.", "keywords": [ "loc", "cloc", "linguist", - "umijs", "lines of code" ], "homepage": "https://github.com/aeisenberg/linguist#readme", @@ -33,10 +32,10 @@ }, "scripts": { "build": "tsc -d", - "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src", + "lint": "eslint --cache --ext .ts ./src", "prettier": "prettier -c --write \"**/*\"", "prepublishOnly": "npm run build", - "test": "umi-test" + "test": "jest" }, "dependencies": { "chalk": "^2.2.0", @@ -52,15 +51,22 @@ "@types/commander": "^2.11.0", "@types/fs-extra": "^4.0.2", "@types/globby": "^6.1.0", - "@types/jest": "^25.1.5", + "@types/jest": "^27.0.1", "@types/mocha": "^2.2.43", "@types/node": "^8.0.45", - "@umijs/fabric": "^2.0.7", + "@typescript-eslint/eslint-plugin": "^4.29.3", + "@typescript-eslint/parser": "^4.29.3", "chai": "^4.1.2", "coveralls": "^3.0.0", - "eslint": "^6.8.0", - "prettier": "^2.0.2", - "typescript": "^3.8.3", - "umi-test": "^1.9.6" + "eslint": "^7.32.0", + "eslint-config-airbnb-base": "^14.2.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.24.1", + "eslint-plugin-prettier": "^3.4.1", + "jest": "^27.0.6", + "prettier": "^2.3.2", + "ts-jest": "^27.0.5", + "ts-node": "^10.2.1", + "typescript": "^3.9.10" } } \ No newline at end of file diff --git a/node_modules/github-linguist/src/cli.ts b/node_modules/github-linguist/src/cli.ts index 6c58409ab1..b900b61d63 100644 --- a/node_modules/github-linguist/src/cli.ts +++ b/node_modules/github-linguist/src/cli.ts @@ -13,7 +13,7 @@ program .description('count lines of code in a file') .action(async (pathPattern) => { try { - const info = await (new LocFile(pathPattern).getFileInfo()); + const info = await new LocFile(pathPattern).getFileInfo(); // eslint-disable-next-line no-console console.log( chalk.cyan(` @@ -52,9 +52,9 @@ const formatInfo = ( program.arguments(' [env]').action(async (cmd) => { try { - const { info, languages } = await (new LocDir({ - include: cmd - }).loadInfo()); + const { info, languages } = await new LocDir({ + include: cmd, + }).loadInfo(); // eslint-disable-next-line no-console console.log(chalk.cyan(formatInfo(info, languages))); } catch (e) { diff --git a/node_modules/github-linguist/src/declarations.d.ts b/node_modules/github-linguist/src/declarations.d.ts new file mode 100644 index 0000000000..8638a7a149 --- /dev/null +++ b/node_modules/github-linguist/src/declarations.d.ts @@ -0,0 +1,2 @@ +declare module 'slash2'; +declare module 'language-map/languages.json'; diff --git a/node_modules/github-linguist/src/directory.ts b/node_modules/github-linguist/src/directory.ts index 3385c1a9d4..914d859f32 100644 --- a/node_modules/github-linguist/src/directory.ts +++ b/node_modules/github-linguist/src/directory.ts @@ -1,7 +1,6 @@ import globby from 'globby'; import fs from 'fs-extra'; import path from 'path'; -// @ts-ignore import slash from 'slash2'; import { LineInfo, LocFile } from './file'; @@ -41,18 +40,18 @@ const defaultExclude = [ // java '**/target', - "**/*.class", - "**/*.o", - "**/bin", - "**/*.map", + '**/*.class', + '**/*.o', + '**/bin', + '**/*.map', // python - "**/*.pyc", - "**/*.pyo", + '**/*.pyc', + '**/*.pyo', // other - "**/*.dil", - "**/*.ra", + '**/*.dil', + '**/*.ra', // images '**/*.png', @@ -122,29 +121,39 @@ const defaultExclude = [ '**/*.tgz', ]; +function ensureArray(arr?: string[] | string, dfault?: string) { + if (!arr) { + return dfault ? [dfault] : []; + } + return Array.isArray(arr) ? arr : [arr]; +} + /** * Collect the info of a directory. */ export class LocDir { private cwd: string; + private include: string[]; + private exclude: string[]; + private analysisLanguages?: string[]; + private allLanguages = new Languages(); constructor(options: LocDirOptions) { - // ensure all excludes are globstar. Note that '**/*.ts/**' matches files // that end in .ts because the globstar indicates 0 or more directory paths. this.exclude = ensureArray(options.exclude) .concat(defaultExclude) - .map(item => item.endsWith('**') ? item : `${item}/**`); + .map((item) => (item.endsWith('**') ? item : `${item}/**`)); // remove all leading './' since this messes up globstar matches in the // excludes. this.include = ensureArray(options.include, '**') - .map(item => item.startsWith('./') ? item.substring(2) : item) - .map(item => item.endsWith('**') ? item : `${item}/**`); + .map((item) => (item.startsWith('./') ? item.substring(2) : item)) + .map((item) => (item.endsWith('**') ? item : `${item}/**`)); this.cwd = options.cwd || process.cwd(); this.analysisLanguages = options.analysisLanguages; } @@ -156,7 +165,7 @@ export class LocDir { const paths = await globby(this.include, { cwd: this.cwd, ignore: this.exclude, - nodir: true + nodir: true, }); const files: string[] = []; const info: LineInfo = { ...defaultInfo }; @@ -168,6 +177,7 @@ export class LocDir { // We _could_ use Promise.all to count the files in parallel, but that // would lead to out of memory errors when there are many files. + // eslint-disable-next-line no-restricted-syntax for (const pathItem of paths) { const fullPath = slash(path.join(this.cwd, pathItem)); if ( @@ -178,6 +188,7 @@ export class LocDir { ) { continue; } + const file = new LocFile(fullPath); const fileLineInfo = await file.getFileInfo(); const { lines } = fileLineInfo; @@ -208,15 +219,9 @@ export class LocDir { * and this language is not one of them. */ private ignoreLanguage(pathItem: string): boolean { - return this.analysisLanguages && !this.analysisLanguages.includes(this.allLanguages.getType(pathItem)); - } -} - -function ensureArray(arr?: string[] | string, dfault?: string) { - if (!arr) { - return dfault ? [dfault] : []; + return ( + this.analysisLanguages && + !this.analysisLanguages.includes(this.allLanguages.getType(pathItem)) + ); } - return Array.isArray(arr) - ? arr - : [arr]; } diff --git a/node_modules/github-linguist/src/file.ts b/node_modules/github-linguist/src/file.ts index f482403bcf..3693cbece2 100644 --- a/node_modules/github-linguist/src/file.ts +++ b/node_modules/github-linguist/src/file.ts @@ -3,8 +3,6 @@ */ import * as fs from 'fs-extra'; -import * as Path from 'path'; -// @ts-ignore import slash from 'slash2'; import { Languages, Regexes } from './languages'; @@ -40,6 +38,7 @@ const DefaultFileInfo: FileInfo = { */ export class LocFile { public path: string; + private rawPath: string; private languages = new Languages(); @@ -59,18 +58,16 @@ export class LocFile { const total = codeLength; let inMultiLineComment = false; - lines.forEach((line) => { - + lines.forEach((origLine) => { let lineType = 'code'; - line = line.trim(); + const line = origLine.trim(); if (inMultiLineComment) { - let noCode = true; - if (regexes.multiLineCommentClose.test(line)) { + if (regexes.multiLineCommentClose?.test(line)) { // line contains the end of a multi-line comment inMultiLineComment = false; - if (!regexes.multiLineCommentCloseEnd.test(line)) { + if (!regexes.multiLineCommentCloseEnd?.test(line)) { // the multiline comment does not end this line. // there is real code on it. noCode = false; @@ -82,33 +79,29 @@ export class LocFile { commentLength += 1; codeLength -= 1; } - } else if (line) { - // non-empty line - if (regexes.multiLineCommentOpen.test(line)) { + if (regexes.multiLineCommentOpen?.test(line)) { // line contains the start of a multi-line comment // might contain some real code, but we'll let that slide - if (!regexes.multiLineCommentOpenAndClose.test(line)) { + if (!regexes.multiLineCommentOpenAndClose?.test(line)) { // comment is not also closed on this line inMultiLineComment = true; } - if (regexes.multiLineCommentOpenStart.test(line)) { + if (regexes.multiLineCommentOpenStart?.test(line)) { // The comment starts the line. There is no other code on this line commentLength += 1; codeLength -= 1; lineType = 'comm'; } - - } else if (regexes.singleLineComment.test(line)) { + } else if (regexes.singleLineComment?.test(line)) { // line contains only a single line comment commentLength += 1; codeLength -= 1; lineType = 'comm'; } - } else { // empty line codeLength -= 1; @@ -116,7 +109,7 @@ export class LocFile { } if (this.debug) { - console.log(lineType, line) + console.log(lineType, line); } }); @@ -137,14 +130,16 @@ export class LocFile { } let newData = data; - const info: FileInfo = Object.assign({}, DefaultFileInfo); - const name = this.path.split(Path.sep).pop() || ''; + const info: FileInfo = { ...DefaultFileInfo }; + // note: do not use Path.sep here since we have already + // translated the path to a posix path using slash(...). + const name = this.path.split('/').pop() || ''; try { const stat = await fs.stat(this.path); if (!stat.isFile()) { return info; } - newData = data || await fs.readFile(this.path, 'utf-8'); + newData = data || (await fs.readFile(this.path, 'utf-8')); info.name = name; info.size = (stat && stat.size) || 0; info.languages = this.languages.getType(this.path); @@ -162,7 +157,7 @@ export class LocFile { } public getFileInfoByContent(name: string, data: string): FileInfo { - const info: FileInfo = Object.assign({}, DefaultFileInfo); + const info: FileInfo = { ...DefaultFileInfo }; info.name = name; info.languages = this.languages.getType(name); info.lines = this.filterData(data, this.languages.getRegexes(info.languages)); diff --git a/node_modules/github-linguist/src/index.ts b/node_modules/github-linguist/src/index.ts index 8e5674da97..a346e068a1 100644 --- a/node_modules/github-linguist/src/index.ts +++ b/node_modules/github-linguist/src/index.ts @@ -1,4 +1,3 @@ -// @ts-ignore import slash from 'slash2'; import fs from 'fs-extra'; @@ -8,9 +7,7 @@ import { LocFile } from './file'; export { LocDir, LocDirOptions } from './directory'; export { LocFile, LineInfo } from './file'; -const loc = async ( - fileOrDir: string, -): Promise => { +const loc = async (fileOrDir: string): Promise => { const stat = await fs.stat(slash(fileOrDir)); if (stat.isFile()) { const locFile = new LocFile(slash(fileOrDir)); diff --git a/node_modules/github-linguist/src/languages.ts b/node_modules/github-linguist/src/languages.ts index 64cb910cae..2ac74da1d3 100644 --- a/node_modules/github-linguist/src/languages.ts +++ b/node_modules/github-linguist/src/languages.ts @@ -1,16 +1,10 @@ +import languageMap from 'language-map/languages.json'; import { ExtensionJustify } from './utils'; -// tslint:disable-next-line -const languageMap = require('language-map'); -// tslint:disable-next-line -// const lang = require('language-classifier'); - interface ExtensionsTypes { [key: string]: string; } -export interface DetectorOptions {} - /** * The extension map can contain multiple languages with the same extension, * but we only want a single one. For the moment, these clashes are resolved @@ -19,8 +13,116 @@ export interface DetectorOptions {} * where the extension is ambiguous. The ordering of the list matters and * languages earlier on will get a higher priority when resolving clashes. */ -const importantLanguages = ["javascript", "typescript", "ruby", "python", "java", "c", "c++", "c#", "rust", "scala", "perl", "go"]; +const importantLanguages = [ + 'javascript', + 'typescript', + 'ruby', + 'python', + 'java', + 'c', + 'c++', + 'c#', + 'rust', + 'scala', + 'perl', + 'go', +]; + +export interface Regexes { + singleLineComment: RegExp; + multiLineCommentOpen?: RegExp; + multiLineCommentOpenStart?: RegExp; + multiLineCommentClose?: RegExp; + multiLineCommentCloseEnd?: RegExp; + multiLineCommentOpenAndClose?: RegExp; +} + +const ALL_REGEXES: Record = { + c: { + // matches when // are the first two characters of a line + singleLineComment: /^\/\//, + + // matches when /* exists in a line + multiLineCommentOpen: /\/\*/, + + // matches when /* starts a line + multiLineCommentOpenStart: /^\/\*/, + + // matches when */ exists a line + multiLineCommentClose: /\*\//, + + // matches when */ ends a line + multiLineCommentCloseEnd: /\*\/$/, + + // matches /* ... */ + multiLineCommentOpenAndClose: /\/\*.*\*\//, + }, + + python: { + // matches when # the first character of a line + singleLineComment: /^#/, + + // matches when """ starts a line. This is not right, since + // a multiline string is not always a comment, but for the + // sake of simplicity, we will do that here. + // multiLineCommentOpen: /"""/, + + // matches when """ starts a line + // multiLineCommentOpenStart: /^"""/, + + // matches when """ exists in a line + // multiLineCommentClose: /"""/, + + // matches when """ ends a line + // multiLineCommentCloseEnd: /"""$/, + + // matches """ ... """ + // multiLineCommentOpenAndClose: /""".*"""/, + }, + + ruby: { + // matches when # the first character of a line + singleLineComment: /^#/, + + // For ruby multiline comments, =begin and =end must be + // on their own lines + + // matches when =begin starts a line + multiLineCommentOpen: /^=begin/, + + // matches when "begin starts a line + multiLineCommentOpenStart: /^=begin/, + + // matches when "end ends a line + multiLineCommentClose: /^=end/, + + // matches when "end ends a line + multiLineCommentCloseEnd: /^=end$/, + + // not possible in ruby + multiLineCommentOpenAndClose: /^\0$/, + }, + + html: { + // There is no single line comment + singleLineComment: /^\0$/, + // matches when =begin starts a line + multiLineCommentOpen: //, + + // matches when "end ends a line + multiLineCommentCloseEnd: /-->$/, + + // matches + multiLineCommentOpenAndClose: //, + }, +}; /** * detecte program language through file extension @@ -51,11 +153,13 @@ export class Languages { const languageExtensions = (languageMode && languageMode.extensions) || []; languageExtensions.forEach((extension: string) => { const lowerCaseExtension = extension.toLowerCase(); - const lowerCaseLanguage = language.toLowerCase() + const lowerCaseLanguage = language.toLowerCase(); if (!extensions[lowerCaseExtension]) { extensions[lowerCaseExtension] = lowerCaseLanguage; } else { - const currentLanguagePriority = importantLanguages.indexOf(extensions[lowerCaseExtension]); + const currentLanguagePriority = importantLanguages.indexOf( + extensions[lowerCaseExtension], + ); if (currentLanguagePriority === -1) { extensions[lowerCaseExtension] = lowerCaseLanguage; } else { @@ -67,8 +171,8 @@ export class Languages { }); }); - return Object.assign({}, extensions, ExtensionJustify); - } + return { ...extensions, ...ExtensionJustify }; + }; /** * Retrieve the regular expressions for a given language. @@ -78,7 +182,7 @@ export class Languages { * @param language the language to retrieve regexes for */ public getRegexes(language: string): Regexes { - switch(language) { + switch (language) { case 'html': case 'xml': return ALL_REGEXES.html; @@ -105,104 +209,8 @@ export class Languages { /** * get file type through a path */ - public getType(path: string): string { + public getType(path: string): string { const fileExtension = `.${path.split('.').pop()}`; return this.extensionMap[fileExtension] || ''; } } - -export interface Regexes { - singleLineComment: RegExp; - multiLineCommentOpen: RegExp; - multiLineCommentOpenStart: RegExp; - multiLineCommentClose: RegExp; - multiLineCommentCloseEnd: RegExp; - multiLineCommentOpenAndClose: RegExp; -} - -const ALL_REGEXES: Record = { - c: { - // matches when // are the first two characters of a line - singleLineComment: /^\/\//, - - // matches when /* exists in a line - multiLineCommentOpen: /\/\*/, - - // matches when /* starts a line - multiLineCommentOpenStart: /^\/\*/, - - // matches when */ exists a line - multiLineCommentClose: /\*\//, - - // matches when */ ends a line - multiLineCommentCloseEnd: /\*\/$/, - - // matches /* ... */ - multiLineCommentOpenAndClose: /\/\*.*\*\// - }, - - python: { - // matches when # the first character of a line - singleLineComment: /^#/, - - // matches when """ starts a line. This is not right, since - // a multiline string is not always a comment, but for the - // sake of simplicity, we will do that here. - multiLineCommentOpen: /"""/, - - // matches when """ starts a line - multiLineCommentOpenStart: /^"""/, - - // matches when """ exists in a line - multiLineCommentClose: /"""/, - - // matches when """ ends a line - multiLineCommentCloseEnd: /"""$/, - - // matches """ ... """ - multiLineCommentOpenAndClose: /""".*"""/ - }, - - ruby: { - // matches when # the first character of a line - singleLineComment: /^#/, - - // For ruby multiline comments, =begin and =end must be - // on their own lines - - // matches when =begin starts a line - multiLineCommentOpen: /^=begin/, - - // matches when "begin starts a line - multiLineCommentOpenStart: /^=begin/, - - // matches when "end ends a line - multiLineCommentClose: /^=end/, - - // matches when "end ends a line - multiLineCommentCloseEnd: /^=end$/, - - // not possible in ruby - multiLineCommentOpenAndClose: /^\0$/ - }, - - html: { - // There is no single line comment - singleLineComment: /^\0$/, - - // matches when =begin starts a line - multiLineCommentOpen: //, - - // matches when "end ends a line - multiLineCommentCloseEnd: /-->$/, - - // matches - multiLineCommentOpenAndClose: // - } -}; diff --git a/node_modules/github-linguist/src/utils.ts b/node_modules/github-linguist/src/utils.ts index d89ed9e23e..b7c790b4d0 100644 --- a/node_modules/github-linguist/src/utils.ts +++ b/node_modules/github-linguist/src/utils.ts @@ -1,6 +1,5 @@ import fs from 'fs'; import path from 'path'; -// @ts-ignore import slash from 'slash2'; const packagePath = slash(path.join(__dirname, '../', 'package.json')); diff --git a/node_modules/github-linguist/tsconfig.json b/node_modules/github-linguist/tsconfig.json index 1cce1d1ccd..3ad2b108d2 100644 --- a/node_modules/github-linguist/tsconfig.json +++ b/node_modules/github-linguist/tsconfig.json @@ -13,7 +13,8 @@ "sourceMap": true, "paths": { "*": ["node_modules/*", "src/types/*"] - } + }, + "resolveJsonModule": true }, - "include": ["src/**/*"] + "include": ["src/**/*", "test/declarations.d.ts"] } diff --git a/package-lock.json b/package-lock.json index a1967a3f5a..1467bae9e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "fast-deep-equal": "^3.1.3", "file-url": "^3.0.0", "fs": "0.0.1-security", - "github-linguist": "^2.4.3", + "github-linguist": "^2.4.4", "glob": "^7.1.7", "js-yaml": "^4.1.0", "jsonschema": "1.2.6", @@ -1505,6 +1505,7 @@ "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -3014,9 +3015,9 @@ } }, "node_modules/github-linguist": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/github-linguist/-/github-linguist-2.4.3.tgz", - "integrity": "sha512-hKWn1QQ+9oUyOIcUhPzi6AxTcAkYHg4OOwK79Pr05SBTFmdNr7GQkMDJabSGCZwu7SDhEb5YeUwUGqrUfyo7PA==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/github-linguist/-/github-linguist-2.4.4.tgz", + "integrity": "sha512-QSw/HfSTqA13t7eqNeGLd62ghnTsTQAUrJQKkUG100NZqqzpsKB9c7gH7lFaGU1ZWGmNSWfhG6q1Ok/xotOA/g==", "dependencies": { "chalk": "^2.2.0", "commander": "^2.11.0", @@ -3706,6 +3707,9 @@ "node_modules/jsonfile": { "version": "4.0.0", "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.6" + }, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -8320,9 +8324,9 @@ } }, "github-linguist": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/github-linguist/-/github-linguist-2.4.3.tgz", - "integrity": "sha512-hKWn1QQ+9oUyOIcUhPzi6AxTcAkYHg4OOwK79Pr05SBTFmdNr7GQkMDJabSGCZwu7SDhEb5YeUwUGqrUfyo7PA==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/github-linguist/-/github-linguist-2.4.4.tgz", + "integrity": "sha512-QSw/HfSTqA13t7eqNeGLd62ghnTsTQAUrJQKkUG100NZqqzpsKB9c7gH7lFaGU1ZWGmNSWfhG6q1Ok/xotOA/g==", "requires": { "chalk": "^2.2.0", "commander": "^2.11.0", diff --git a/package.json b/package.json index 299860e923..0ccb2165d3 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "fast-deep-equal": "^3.1.3", "file-url": "^3.0.0", "fs": "0.0.1-security", - "github-linguist": "^2.4.3", + "github-linguist": "^2.4.4", "glob": "^7.1.7", "js-yaml": "^4.1.0", "jsonschema": "1.2.6",