diff --git a/.eslintignore b/.eslintignore index aaa155e20..6d5e7cd4d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,7 +1,9 @@ **/node_modules +node_modules/ **/*.js **/*.cjs **/build +**/build/** **/generated lunadefend/**/* lunadefend/js/demo-apps/packages/react-front-end/cypress/integration/secure_components_spec.ts diff --git a/.eslintrc.js b/.eslintrc.js index 9159a0911..2777f912c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -21,6 +21,15 @@ const hideErrorsInDev = process.env.HIDE_ERRORS_IN_DEV === 'true'; const productionError = hideErrorsInDev ? 'warn': 'error'; const productionWarn = hideErrorsInDev ? 'off': 'warn'; +// Removing this doubles the performance of linting +const lunaDefendProjects = process.env.LINT_LUNADEFEND ? [ + 'lunadefend/js/sdks/packages/vue-sdk/tsconfig.json', + 'lunadefend/js/sdks/tsconfig.json', + 'lunadefend/js/demo-apps/packages/demo-back-end/tsconfig.json', + 'lunadefend/js/demo-apps/packages/react-front-end/tsconfig.json', + 'lunadefend/js/internal-infrastructure/metrics-server-backend/tsconfig.json', + 'lunadefend/js/internal-infrastructure/s3-redirect-generator/tsconfig.json' +] : []; module.exports = { root: true, @@ -51,15 +60,10 @@ module.exports = { jsx: true }, tsconfigRootDir: __dirname, - ecmaVersion: 12, + ecmaVersion: 16, sourceType: 'module', project: [ - 'lunadefend/js/sdks/packages/vue-sdk/tsconfig.json', - 'lunadefend/js/sdks/tsconfig.json', - 'lunadefend/js/demo-apps/packages/demo-back-end/tsconfig.json', - 'lunadefend/js/demo-apps/packages/react-front-end/tsconfig.json', - 'lunadefend/js/internal-infrastructure/metrics-server-backend/tsconfig.json', - 'lunadefend/js/internal-infrastructure/s3-redirect-generator/tsconfig.json', + ...lunaDefendProjects, 'lunatrace/bsl/common/tsconfig.json', 'lunatrace/bsl/frontend/tsconfig.json', 'lunatrace/bsl/backend-cdk/tsconfig.json', diff --git a/lunatrace/bsl/backend/package.json b/lunatrace/bsl/backend/package.json index 4961ac623..5a5e2afb1 100644 --- a/lunatrace/bsl/backend/package.json +++ b/lunatrace/bsl/backend/package.json @@ -5,7 +5,7 @@ "engines": { "node": ">=18.0.0" }, - "main": "build/server.js", + "main": "src/server.ts", "types": "build/server.d.ts", "scripts": { "benchmark": "node --prof -r ts-node/register -r tsconfig-paths/register ./src/tests/dependency-tree.test.ts", diff --git a/lunatrace/bsl/common/package.json b/lunatrace/bsl/common/package.json index 43b8247f9..b88ee23d5 100644 --- a/lunatrace/bsl/common/package.json +++ b/lunatrace/bsl/common/package.json @@ -1,6 +1,6 @@ { "name": "@lunatrace/lunatrace-common", - "main": "build/main/index.js", + "main": "src/index.ts", "typings": "build/main/index.d.ts", "license": "BSL-LunaTrace", "type": "commonjs", diff --git a/lunatrace/bsl/frontend/tsconfig.json b/lunatrace/bsl/frontend/tsconfig.json index 4fa86b966..9ab6fd854 100644 --- a/lunatrace/bsl/frontend/tsconfig.json +++ b/lunatrace/bsl/frontend/tsconfig.json @@ -23,6 +23,10 @@ "include": [ "src" ], + "exclude": [ + "node_modules", + "src/api/generated.ts" + ], "references": [ {"path": "../common"} ] diff --git a/lunatrace/bsl/logger/package.json b/lunatrace/bsl/logger/package.json index a07f10811..a8e16bbbf 100644 --- a/lunatrace/bsl/logger/package.json +++ b/lunatrace/bsl/logger/package.json @@ -1,6 +1,6 @@ { "name": "@lunatrace/logger", - "main": "build/main/index.js", + "main": "src/index.ts", "typings": "build/main/index.d.ts", "license": "BSL-LunaTrace", "type": "commonjs", diff --git a/lunatrace/npm-package-cli/package.json b/lunatrace/npm-package-cli/package.json index c351c73ff..2787d0505 100644 --- a/lunatrace/npm-package-cli/package.json +++ b/lunatrace/npm-package-cli/package.json @@ -8,7 +8,7 @@ }, "homepage": "https://github.com/lunasec-io/lunasec", "license": "Apache-2.0", - "main": "dist/index.js", + "main": "src/index.ts", "typings": "build/main/index.d.ts", "repository": { "type": "git", diff --git a/package.json b/package.json index 1a9dfec90..bf72b87f4 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "description": "This monorepo holds the LunaSec SDKs, servers, and demo application.", "devDependencies": { "@jest/globals": "^29.4.1", - "@typescript-eslint/eslint-plugin": "^5.6.0", - "@typescript-eslint/parser": "^5.6.0", + "@typescript-eslint/eslint-plugin": "^5.54.0", + "@typescript-eslint/parser": "^5.54.0", "@vue/eslint-config-prettier": "^6.0.0", "@vue/eslint-config-typescript": "^9.1.0", "eslint": "8.25.0", @@ -73,7 +73,7 @@ "test:all": "yarn test:unit && yarn run test:e2e:local", "lint:fix": "yarn run lint --fix", "lint": "yarn run lint:basecommand .", - "lint:basecommand": "yarn run eslint --ext .js,.jsx,.ts,.tsx,.vue --quiet ./lunatrace", + "lint:basecommand": "yarn run eslint --cache --ext .js,.jsx,.ts,.tsx,.vue --quiet ./lunatrace", "lint:lunatrace": "yarn run lint:basecommand ./lunatrace", "version:release": "./tools/version-release.sh", "compile:dev:infrastructure": "cd lunadefend/js/internal-infrastructure/s3-redirect-generator && yarn run compile", diff --git a/yarn.lock b/yarn.lock index 7f59cfb61..e1b1a27e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17865,6 +17865,13 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.3.12": + version: 7.3.13 + resolution: "@types/semver@npm:7.3.13" + checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0 + languageName: node + linkType: hard + "@types/semver@npm:^7.3.9": version: 7.3.9 resolution: "@types/semver@npm:7.3.9" @@ -18341,6 +18348,30 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:^5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.54.0" + dependencies: + "@typescript-eslint/scope-manager": 5.54.0 + "@typescript-eslint/type-utils": 5.54.0 + "@typescript-eslint/utils": 5.54.0 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + regexpp: ^3.2.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 4fdb520b8e0f6b9eb878206ddfa4212522f170d1507d7aba8a975159a198efa37af6d2d17982dd560317452d0748f2e2da5dd7347b172bc4446d1c5562ce2e94 + languageName: node + linkType: hard + "@typescript-eslint/experimental-utils@npm:4.33.0, @typescript-eslint/experimental-utils@npm:^4.0.1, @typescript-eslint/experimental-utils@npm:^4.9.1": version: 4.33.0 resolution: "@typescript-eslint/experimental-utils@npm:4.33.0" @@ -18417,6 +18448,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/parser@npm:5.54.0" + dependencies: + "@typescript-eslint/scope-manager": 5.54.0 + "@typescript-eslint/types": 5.54.0 + "@typescript-eslint/typescript-estree": 5.54.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 368d6dd85be42c3f518f0ddeed23ecd1d3c9484a77ae291ee4e08e2703ed379bed613bde014cd8ab2a3e06e85dd8aef201112ae5e3d2a07deba29ae80bb1fe06 + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:4.33.0": version: 4.33.0 resolution: "@typescript-eslint/scope-manager@npm:4.33.0" @@ -18437,6 +18485,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/scope-manager@npm:5.54.0" + dependencies: + "@typescript-eslint/types": 5.54.0 + "@typescript-eslint/visitor-keys": 5.54.0 + checksum: e50f12396de0ddb94aab119bdd5f4769b80dd2c273e137fd25e5811e25114d7a3d3668cdb3c454aca9537e940744881d62a1fed2ec86f07f60533dc7382ae15c + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:5.13.0": version: 5.13.0 resolution: "@typescript-eslint/type-utils@npm:5.13.0" @@ -18453,6 +18511,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/type-utils@npm:5.54.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.54.0 + "@typescript-eslint/utils": 5.54.0 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 9cb5b52c7277bdf74b9ea3282fc40f41fda90ea4b1d33039044476e43cf05a766b1294e7d45f429594f2776828f7d17729cfa4ea027315f3df883e748ba57514 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:3.10.1": version: 3.10.1 resolution: "@typescript-eslint/types@npm:3.10.1" @@ -18474,6 +18549,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/types@npm:5.54.0" + checksum: 0f66b1b93078f3afea6dfcd3d4e2f0abea4f60cd0c613c2cf13f85098e5bf786185484c9846ed80b6c4272de2c31a70c5a8aacb91314cf1b6da7dcb8855cb7ac + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:3.10.1": version: 3.10.1 resolution: "@typescript-eslint/typescript-estree@npm:3.10.1" @@ -18529,6 +18611,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.54.0" + dependencies: + "@typescript-eslint/types": 5.54.0 + "@typescript-eslint/visitor-keys": 5.54.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 377c75c34c4f95b7ab6218c1d96a6db3ea6ed6727711b6a09354582fe0157861dc1b6fb9e3f7113cd09741f713735d59d5ab5845457f5733a4ebad7470bf600a + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:5.13.0, @typescript-eslint/utils@npm:^5.10.2": version: 5.13.0 resolution: "@typescript-eslint/utils@npm:5.13.0" @@ -18545,6 +18645,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/utils@npm:5.54.0" + dependencies: + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.54.0 + "@typescript-eslint/types": 5.54.0 + "@typescript-eslint/typescript-estree": 5.54.0 + eslint-scope: ^5.1.1 + eslint-utils: ^3.0.0 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: b8f344fc2961c7af530b93e53d5a17b5084cdf550b381082e3fb7f349ef16e718d9eebde1b9fc2d8fc4ecf8d60d334b004359977247554265c1afc87323bed37 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:3.10.1": version: 3.10.1 resolution: "@typescript-eslint/visitor-keys@npm:3.10.1" @@ -18574,6 +18692,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.54.0": + version: 5.54.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.54.0" + dependencies: + "@typescript-eslint/types": 5.54.0 + eslint-visitor-keys: ^3.3.0 + checksum: 17fc323c09e6272b603cdaec30a99916600fbbb737e1fbc8c1727a487753b4363cea112277fa43e0562bff34bdd1de9ad73ff9433118b1fd469b112fad0313ca + languageName: node + linkType: hard + "@vue/babel-helper-vue-jsx-merge-props@npm:^1.2.1": version: 1.2.1 resolution: "@vue/babel-helper-vue-jsx-merge-props@npm:1.2.1" @@ -40136,8 +40264,8 @@ __metadata: resolution: "lunasec@workspace:." dependencies: "@jest/globals": ^29.4.1 - "@typescript-eslint/eslint-plugin": ^5.6.0 - "@typescript-eslint/parser": ^5.6.0 + "@typescript-eslint/eslint-plugin": ^5.54.0 + "@typescript-eslint/parser": ^5.54.0 "@vue/eslint-config-prettier": ^6.0.0 "@vue/eslint-config-typescript": ^9.1.0 eslint: 8.25.0 @@ -42403,6 +42531,13 @@ __metadata: languageName: node linkType: hard +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0"