diff --git a/its/ruling/src/test/expected/jsts/Ghost/javascript-S2004.json b/its/ruling/src/test/expected/jsts/Ghost/javascript-S2004.json new file mode 100644 index 00000000000..72a5520f60e --- /dev/null +++ b/its/ruling/src/test/expected/jsts/Ghost/javascript-S2004.json @@ -0,0 +1,1645 @@ +{ +"Ghost:Gruntfile.js": [ +840, +852, +860 +], +"Ghost:core/client/app/assets/lib/uploader.js": [ +27, +34, +47, +50, +69, +100 +], +"Ghost:core/client/app/components/modals/invite-new-user.js": [ +58 +], +"Ghost:core/client/app/components/modals/re-authenticate.js": [ +54 +], +"Ghost:core/client/app/controllers/setup/three.js": [ +175, +180, +194, +220 +], +"Ghost:core/client/app/controllers/setup/two.js": [ +131, +134, +136 +], +"Ghost:core/client/app/controllers/signup.js": [ +32, +71, +75 +], +"Ghost:core/client/app/mixins/shortcuts.js": [ +64 +], +"Ghost:core/client/app/routes/application.js": [ +98 +], +"Ghost:core/client/app/routes/posts.js": [ +27 +], +"Ghost:core/client/tests/acceptance/authentication-test.js": [ +34, +49, +60, +72, +73, +81, +108, +119, +155, +160 +], +"Ghost:core/client/tests/acceptance/password-reset-test.js": [ +29, +42, +64, +86 +], +"Ghost:core/client/tests/acceptance/posts/post-test.js": [ +43, +55 +], +"Ghost:core/client/tests/acceptance/settings/navigation-test.js": [ +61, +76, +93, +100 +], +"Ghost:core/client/tests/acceptance/settings/tags-test.js": [ +96, +127, +140, +148, +157, +165, +178, +189, +208, +225, +240, +262, +272, +282, +290, +298 +], +"Ghost:core/client/tests/acceptance/setup-test.js": [ +69, +84, +105, +119, +140, +153, +162, +179, +203, +217, +225, +236, +257, +275, +308, +325, +340, +355, +364, +379, +387 +], +"Ghost:core/client/tests/acceptance/team-test.js": [ +80, +118, +161, +192, +241, +245, +325, +333 +], +"Ghost:core/client/tests/integration/components/gh-navitem-url-input-test.js": [ +161, +277, +280, +310, +313, +358, +361, +384, +387, +412, +415, +434, +443, +461, +470 +], +"Ghost:core/client/tests/unit/controllers/post-settings-menu-test.js": [ +158, +173, +208, +246, +283, +295, +302, +315, +322, +340, +352, +359, +372, +379, +392, +399, +416, +427, +444, +452, +475, +483, +506, +514, +539, +548, +557, +570, +581, +596, +608, +623, +635, +650, +660, +666, +682, +692, +698 +], +"Ghost:core/client/tests/unit/controllers/settings/navigation-test.js": [ +98, +101, +122, +125, +139, +152, +155 +], +"Ghost:core/client/tests/unit/models/user-test.js": [ +31 +], +"Ghost:core/client/tests/unit/services/notifications-test.js": [ +302, +370 +], +"Ghost:core/client/tests/unit/validators/tag-settings-test.js": [ +65, +88, +107, +130, +151, +169, +190, +208, +237, +255, +278, +296 +], +"Ghost:core/server/api/posts.js": [ +224 +], +"Ghost:core/server/api/roles.js": [ +65 +], +"Ghost:core/server/api/settings.js": [ +416 +], +"Ghost:core/server/api/tags.js": [ +180 +], +"Ghost:core/server/api/themes.js": [ +165 +], +"Ghost:core/server/api/users.js": [ +192, +271, +277, +327, +340, +392, +406, +408 +], +"Ghost:core/server/apps/dependencies.js": [ +30 +], +"Ghost:core/server/apps/index.js": [ +68, +74, +76 +], +"Ghost:core/server/apps/proxy.js": [ +43 +], +"Ghost:core/server/config/index.js": [ +275, +277, +307, +317 +], +"Ghost:core/server/controllers/admin.js": [ +26 +], +"Ghost:core/server/controllers/frontend/index.js": [ +67, +72 +], +"Ghost:core/server/data/export/index.js": [ +51 +], +"Ghost:core/server/data/import/data-importer.js": [ +93, +155 +], +"Ghost:core/server/data/import/index.js": [ +137 +], +"Ghost:core/server/data/import/utils.js": [ +56, +93, +201, +314 +], +"Ghost:core/server/data/importer/index.js": [ +109, +249 +], +"Ghost:core/server/data/migration/fixtures/index.js": [ +106, +194, +268, +295, +301, +318 +], +"Ghost:core/server/data/migration/fixtures/permissions/index.js": [ +32, +63, +96 +], +"Ghost:core/server/data/migration/index.js": [ +51, +176, +184 +], +"Ghost:core/server/data/schema/versioning.js": [ +37 +], +"Ghost:core/server/filters.js": [ +81 +], +"Ghost:core/server/helpers/has.js": [ +26 +], +"Ghost:core/server/index.js": [ +71, +206, +210 +], +"Ghost:core/server/mail/index.js": [ +92, +102, +112 +], +"Ghost:core/server/middleware/oauth.js": [ +57, +61 +], +"Ghost:core/server/models/index.js": [ +58 +], +"Ghost:core/server/models/post.js": [ +193, +203, +210, +215, +551 +], +"Ghost:core/server/models/user.js": [ +392, +539, +544, +557 +], +"Ghost:core/server/permissions/effective.js": [ +20 +], +"Ghost:core/server/permissions/index.js": [ +145 +], +"Ghost:core/server/update-check.js": [ +121, +134, +142 +], +"Ghost:core/test/functional/base.js": [ +179, +402, +441, +446, +456, +462, +464, +479, +488, +526 +], +"Ghost:core/test/functional/client/app_test.js": [ +219, +225 +], +"Ghost:core/test/functional/client/signin_test.js": [ +13 +], +"Ghost:core/test/functional/client/team_test.js": [ +112 +], +"Ghost:core/test/functional/module/module_spec.js": [ +14, +22, +31, +44 +], +"Ghost:core/test/functional/routes/admin_spec.js": [ +120, +158 +], +"Ghost:core/test/functional/routes/api/authentication_spec.js": [ +135 +], +"Ghost:core/test/functional/routes/api/error_spec.js": [ +35 +], +"Ghost:core/test/functional/routes/api/notifications_spec.js": [ +45, +80 +], +"Ghost:core/test/functional/routes/api/posts_spec.js": [ +41, +65, +89, +111, +133, +155, +180, +209, +237, +263, +289, +311, +331, +351, +381, +468, +515, +560, +598, +636, +674, +710, +739, +769, +811, +851, +872, +897, +935, +963, +994, +1016 +], +"Ghost:core/test/functional/routes/api/public_api_spec.js": [ +34 +], +"Ghost:core/test/functional/routes/api/settings_spec.js": [ +125, +159, +192 +], +"Ghost:core/test/functional/routes/api/users_spec.js": [ +40, +66, +88, +112, +134, +156, +178, +200, +223, +248, +273, +293, +313, +355 +], +"Ghost:core/test/functional/routes/frontend_spec.js": [ +58, +66, +74, +82, +90, +98, +106, +114, +124, +152, +162, +170, +178, +207, +220, +228, +236, +246, +253, +260, +268, +316, +373, +375, +377, +448, +450, +470, +495, +502, +510, +523, +526, +528, +530, +532, +588, +596, +604, +612, +620, +630, +638, +646, +659, +661, +663, +665, +721, +729, +737, +745, +753, +796, +872, +958, +995, +1015, +1041, +1043 +], +"Ghost:core/test/integration/api/advanced_browse_spec.js": [ +24, +73, +113, +139, +189, +223, +244, +278, +323, +373, +434, +472, +526, +558, +592, +624, +661, +700, +738, +775, +781, +813, +829, +845, +861 +], +"Ghost:core/test/integration/api/api_authentication_spec.js": [ +59, +68, +93, +106, +119, +136, +145, +165, +178, +187, +206, +215, +239, +248, +272, +281 +], +"Ghost:core/test/integration/api/api_db_spec.js": [ +26, +31, +45, +50 +], +"Ghost:core/test/integration/api/api_notifications_spec.js": [ +89, +105, +126, +147 +], +"Ghost:core/test/integration/api/api_posts_spec.js": [ +24, +34, +44, +54, +64, +74, +84, +94, +103, +112, +124, +137, +141, +148, +152, +159, +163, +170, +183, +196, +204, +214, +227, +237, +247, +261, +263, +272, +274, +283, +294, +306, +318, +330, +349, +365, +381, +396, +402, +421, +423, +431, +440, +448, +450, +459, +468, +476, +484, +492, +502, +513, +521, +534, +546, +548 +], +"Ghost:core/test/integration/api/api_roles_spec.js": [ +30, +37, +44, +51, +58, +60, +81, +88, +95, +107, +117, +119 +], +"Ghost:core/test/integration/api/api_settings_spec.js": [ +60, +74, +88 +], +"Ghost:core/test/integration/api/api_tags_spec.js": [ +38, +48, +57, +59, +70, +72, +85, +95, +105, +107, +116, +118, +129, +140, +146, +165, +184, +196, +208, +220, +232, +253, +275, +282, +298, +305, +324, +338, +346, +356, +358 +], +"Ghost:core/test/integration/api/api_upload_spec.js": [ +42, +44, +59, +61, +76, +88, +90, +103, +115 +], +"Ghost:core/test/integration/api/api_users_spec.js": [ +66, +73, +80, +87, +94, +101, +103, +109, +124, +131, +148, +155, +171, +178, +191, +244, +252, +260, +267, +274, +282, +284, +309, +316, +320, +323, +327, +336, +339, +343, +352, +354, +361, +365, +369, +380, +382, +384, +410, +416, +426, +428, +430, +455, +465, +475, +484, +500, +504, +522, +531, +543, +554, +566, +578, +592, +600, +612, +624, +636, +659, +668, +681, +690, +711, +718, +739, +746, +768, +775, +782, +789, +797, +807, +814, +821, +828, +835, +860, +866, +886, +906, +928, +948, +968, +988, +1004, +1017, +1026, +1035, +1043, +1054, +1071, +1087, +1097, +1107, +1117, +1134, +1150, +1165, +1179, +1193, +1207, +1222 +], +"Ghost:core/test/integration/export_spec.js": [ +48 +], +"Ghost:core/test/integration/import_spec.js": [ +44, +49, +65, +68, +80, +83, +97, +100, +128, +132, +140, +170, +179, +187, +237, +244, +246, +284, +289, +291, +334, +343, +351, +401, +408, +410, +447, +452, +454, +495, +498, +506, +540, +543, +545, +563, +566, +568, +578, +582, +584, +596, +603, +605, +618, +624, +626, +635, +641, +644, +665, +667, +670, +683, +733, +808, +890, +892, +895, +908, +958, +1033, +1116, +1118, +1121, +1134, +1195, +1265, +1348, +1350, +1353, +1365 +], +"Ghost:core/test/integration/migration_spec.js": [ +17 +], +"Ghost:core/test/integration/model/model_apps_spec.js": [ +92, +104 +], +"Ghost:core/test/integration/model/model_posts_spec.js": [ +62, +68, +77, +97, +103, +116, +135, +207, +244, +257, +263, +281, +295, +308, +332, +354, +376, +398, +429, +466, +499, +533, +563, +619, +639, +650, +678, +711, +726, +741, +753, +808, +847, +884, +922, +972, +976, +980 +], +"Ghost:core/test/integration/model/model_settings_spec.js": [ +36, +48, +56, +67, +73, +96, +105, +141, +160, +165, +169, +179, +185, +188, +190, +194, +203, +205, +207 +], +"Ghost:core/test/integration/model/model_tags_spec.js": [ +54, +65, +71, +82, +96, +104, +111, +138, +164, +181, +206, +229, +246, +267, +290, +347, +377, +397, +419, +439, +459, +481, +499, +517, +535, +555, +577, +607, +628, +648 +], +"Ghost:core/test/integration/model/model_users_spec.js": [ +41, +45, +58, +62, +73, +77, +81, +102, +106, +117, +122, +135, +139, +151, +157, +163, +169, +175, +187, +196, +198, +218, +227, +243, +245, +253, +261, +273, +275, +287, +299, +305, +314, +316, +339, +343, +359, +363, +367, +385, +393, +409, +413, +426, +439, +443, +456, +470, +478, +487, +498, +502, +516, +524, +540, +542, +556, +558, +560, +570, +572, +578, +589, +596, +599, +616, +621, +623, +625, +639, +641, +653, +655 +], +"Ghost:core/test/unit/api_utils_spec.js": [ +29, +38, +55, +75, +85, +95, +105, +114, +127, +145, +163, +165, +176, +182, +281, +283, +291, +293, +301, +303, +312, +322, +335, +348, +350, +359, +368, +426, +434, +449, +465, +467 +], +"Ghost:core/test/unit/apps_filters_spec.js": [ +86, +100 +], +"Ghost:core/test/unit/apps_spec.js": [ +61, +69, +132, +143, +163, +193, +212, +249, +288, +304, +319, +330, +345, +350, +360, +365, +425, +442, +458, +461, +475 +], +"Ghost:core/test/unit/config_spec.js": [ +169, +176, +182, +191, +199, +207, +227, +239, +251, +267, +286, +299, +312, +343, +376, +387, +396, +408, +417, +432, +441, +451, +461, +470, +479, +487, +505, +534, +549, +562, +567, +579, +585, +591, +597, +607, +609, +620, +622, +633, +635, +646, +648, +659, +661, +672, +674, +685, +687, +698, +700, +712, +714, +726, +728, +739, +742, +753, +774, +788, +800, +802, +813, +815, +826, +828 +], +"Ghost:core/test/unit/controllers/frontend/fetch-data_spec.js": [ +40, +55, +80, +107, +140, +160, +176 +], +"Ghost:core/test/unit/controllers/frontend/index_spec.js": [ +41, +61, +76, +93, +107, +144, +163, +181, +198, +262, +285, +297, +352, +425, +485, +577, +667, +757, +874, +918, +936, +949, +961, +1026, +1040, +1055, +1068, +1081, +1091 +], +"Ghost:core/test/unit/controllers/frontend/templates_spec.js": [ +55, +73, +82, +91, +100, +124, +132, +140, +150, +156 +], +"Ghost:core/test/unit/error_handling_spec.js": [ +24, +33, +41, +255, +262, +266, +355, +367, +372, +386, +398, +403, +418, +430, +436, +449, +461, +466, +483, +487 +], +"Ghost:core/test/unit/filters_spec.js": [ +86, +100 +], +"Ghost:core/test/unit/importer_spec.js": [ +96, +109, +121, +158, +199, +217, +243, +277, +287, +324, +337, +339, +375, +395, +415, +437, +468, +508, +528, +547, +566, +586, +605, +658, +706, +710 +], +"Ghost:core/test/unit/mail_spec.js": [ +107, +120, +128, +130, +139, +141, +150, +152 +], +"Ghost:core/test/unit/middleware/auth-strategies_spec.js": [ +58, +66, +80, +92, +107, +124, +127, +133, +141, +156, +173, +187 +], +"Ghost:core/test/unit/middleware/authentication_spec.js": [ +119, +168, +188, +210, +256, +274, +293, +312, +331, +355, +381, +405, +425, +447, +469, +492, +515 +], +"Ghost:core/test/unit/middleware/cache-control_spec.js": [ +60 +], +"Ghost:core/test/unit/middleware/oauth_spec.js": [ +66, +68, +102, +134, +162, +175, +177, +209, +228, +236, +255, +268 +], +"Ghost:core/test/unit/middleware/private-blogging_spec.js": [ +51, +67, +75, +79, +84, +97, +110, +116, +122, +128, +135, +141, +147, +153, +159, +171, +177 +], +"Ghost:core/test/unit/middleware/spam-prevention_spec.js": [ +74, +88, +198, +208 +], +"Ghost:core/test/unit/middleware/theme-handler_spec.js": [ +53, +70, +145, +162, +181, +205 +], +"Ghost:core/test/unit/migration_spec.js": [ +33 +], +"Ghost:core/test/unit/models_plugins/access-rules_spec.js": [ +37, +41, +45, +49 +], +"Ghost:core/test/unit/models_plugins/filter_spec.js": [ +36, +41, +50, +55, +59, +70, +78, +91, +104, +114, +124, +140, +166, +177, +181, +188, +197, +210, +233, +242, +250, +351 +], +"Ghost:core/test/unit/models_plugins/pagination_spec.js": [ +34, +38, +49, +60, +71, +82, +93, +108, +112, +119, +129, +139, +153, +157, +161, +169, +199, +220, +257, +296, +333, +348, +360, +365 +], +"Ghost:core/test/unit/permissions_spec.js": [ +28, +32, +38, +118, +129, +133, +137, +147, +155, +168, +170, +179, +181, +190, +199, +208, +210, +219, +221, +230, +232, +248, +256, +269, +271 +], +"Ghost:core/test/unit/rss_spec.js": [ +72, +81, +113, +122, +155, +164, +184, +193, +219, +228, +253, +257, +261, +285, +305, +323, +354, +365, +377, +400, +418, +435 +], +"Ghost:core/test/unit/server_helpers/foreach_spec.js": [ +30, +63, +88, +114, +156, +191, +233 +], +"Ghost:core/test/unit/server_helpers/get_spec.js": [ +68, +84, +99, +113, +129, +145, +161, +176, +191, +206, +222, +239, +255, +270, +294, +308, +322, +339, +353 +], +"Ghost:core/test/unit/server_helpers/ghost_head_spec.js": [ +69, +85, +125, +166, +206, +227, +252, +296, +312, +342, +415, +484, +552, +603, +619, +637, +652, +663, +714, +747, +764, +776 +], +"Ghost:core/test/unit/server_helpers/next_post_spec.js": [ +26, +50, +57, +67, +84, +88, +97, +109, +114, +123, +144, +148 +], +"Ghost:core/test/unit/server_helpers/pagination_spec.js": [ +34, +98 +], +"Ghost:core/test/unit/server_helpers/prev_post_spec.js": [ +26, +50, +58, +68, +86, +90, +99, +111, +116, +125, +143, +147 +], +"Ghost:core/test/unit/server_helpers_index_spec.js": [ +25 +], +"Ghost:core/test/unit/server_utils_spec.js": [ +117, +126, +142, +145, +152, +168, +171, +178, +192, +195, +202, +211, +214, +220, +237, +248, +269, +280, +302, +317, +338, +350, +373, +386, +410, +413, +423, +440, +443, +453 +], +"Ghost:core/test/unit/sitemap_spec.js": [ +69, +85, +133, +181, +209, +225, +273, +299, +302, +316, +328, +373, +381, +389, +403, +463, +470, +475, +491, +497, +513, +519 +], +"Ghost:core/test/unit/storage_local-file-store_spec.js": [ +143, +165 +], +"Ghost:core/test/utils/fork.js": [ +34, +63 +], +"Ghost:core/test/utils/index.js": [ +73, +98, +182, +565 +] +} diff --git a/its/ruling/src/test/expected/jsts/Joust/javascript-S2004.json b/its/ruling/src/test/expected/jsts/Joust/javascript-S2004.json new file mode 100644 index 00000000000..e895f43932f --- /dev/null +++ b/its/ruling/src/test/expected/jsts/Joust/javascript-S2004.json @@ -0,0 +1,7 @@ +{ +"Joust:gulpfile.js": [ +131, +133, +210 +] +} diff --git a/its/ruling/src/test/expected/jsts/Joust/typescript-S2004.json b/its/ruling/src/test/expected/jsts/Joust/typescript-S2004.json new file mode 100644 index 00000000000..96cf40fd621 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/Joust/typescript-S2004.json @@ -0,0 +1,27 @@ +{ +"Joust:ts/Launcher.tsx": [ +318, +321, +327 +], +"Joust:ts/components/EventLog.tsx": [ +183 +], +"Joust:ts/components/game/Player.tsx": [ +67, +123 +], +"Joust:ts/protocol/HSReplayDecoder.spec.ts": [ +26, +37, +46, +59, +72, +87, +99, +110, +127, +149, +158 +] +} diff --git a/its/ruling/src/test/expected/jsts/TypeScript/javascript-S2004.json b/its/ruling/src/test/expected/jsts/TypeScript/javascript-S2004.json new file mode 100644 index 00000000000..9899fa41391 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/TypeScript/javascript-S2004.json @@ -0,0 +1,545 @@ +{ +"TypeScript:lib/tsc.js": [ +124, +172, +178, +189, +193, +196, +203, +206, +214, +218, +221, +224, +227, +247, +1039, +1054, +1064, +1690, +1734, +2078, +2137, +2145, +2168, +2183, +2214, +2217, +2229, +2232, +2235, +2243, +2248, +2268, +2285, +2290, +2295, +2298, +2302, +2306, +2314, +2319, +2325, +2335, +2338, +2341, +2354, +2360, +2363, +2373, +2374, +2376, +2377, +6883, +6911, +6915, +6926, +12567, +14194, +14558, +16197, +16209, +16226, +16237, +16246, +16261, +16289, +16330, +16337, +16344, +16350, +16363, +16371, +16390, +16398, +16405, +16411, +16416, +16422, +16430, +16436, +16443, +16452, +16457, +16462, +16480, +16489, +16503, +17051, +17073, +17112, +17122, +17139, +17183, +17194, +17203, +17247, +17262, +17551, +18149, +18356, +18363, +19276, +20090, +20182, +20185, +20206, +20406, +20662, +21160, +21163, +21169, +21211, +21220, +21303, +21323, +21632, +21647, +21654, +21936, +22009, +22036, +22118, +22128, +22179, +22182, +22234, +22306, +22316, +22320, +22401, +22407, +22413, +22420, +22430, +22741, +22748, +22765, +22773, +22780, +22918, +22953, +22956, +22975, +23025, +23346, +23352, +23369, +23391, +23407, +23427, +23434, +23443, +23458, +23472, +23484, +23504, +23518, +23567, +23648, +23712, +23729, +23746, +23751, +23983, +24015, +24262, +24346, +24352, +24460, +24794, +24926, +24937, +24938, +25000, +25094, +25256, +25266, +25308, +25478, +25488, +25683, +26090, +26463, +26673, +26677, +26682, +26685, +26751, +26928, +26931, +26934, +26954, +26960, +26980, +26985, +27062, +27089, +27234, +27439, +27556, +27560, +27580, +27590, +27607, +27679, +27694, +27712, +27738, +27751, +27769, +27787, +27800, +27814, +27827, +27844, +27898, +28010, +28040, +28114, +28138, +28180, +28183, +28199, +28216, +28223, +28254, +28265, +28304, +28310, +28314, +28454, +28460, +28509, +28567, +28776, +28812, +28830, +28838, +28961, +28987, +28997, +29007, +29010, +29019, +29121, +29242, +29315, +29463, +29519, +29524, +29615, +29635, +29702, +29726, +29754, +29770, +29782, +29808, +29859, +29865, +29871, +29883, +29923, +29956, +29986, +30002, +30042, +30057, +30095, +30132, +30151, +30279, +30329, +30454, +30469, +30530, +30570, +30773, +30779, +30911, +31211, +31233, +31311, +31344, +31505, +31677, +31737, +31765, +32005, +32131, +32267, +32522, +32530, +33096, +33144, +33816, +33819, +33829, +33844, +33851, +33938, +34371, +34501, +34504, +34516, +34524, +34539, +34718, +34722, +34743, +34765, +34851, +34856, +34928, +35199, +35282, +35367, +35392, +35430, +35444, +35539, +35843, +36078, +36112, +36150, +36171, +36192, +36199, +36377, +36426, +36429, +36496, +36544, +36599, +36748, +36755, +37117, +37131, +37154, +37409, +37451, +37459, +37508, +37787, +37799, +37850, +37879, +37987, +38160, +38173, +38178, +38182, +38196, +38211, +38213, +38223, +38246, +38300, +39389, +40200, +40203, +40206, +40209, +40212, +40215, +40870, +41774, +42956, +43031, +44279, +44534, +44705, +44759, +44954, +45672, +45733, +45758, +47665, +47672, +47806, +49403, +49430, +49503, +49701, +49713, +49719, +49730, +49738, +49743, +49747, +49751, +49756, +49759, +49762, +49767, +49772, +49778, +49803, +49863, +49978, +49992, +50136, +50175, +50268, +50300, +50343, +50389, +50419, +50427, +50437, +50464, +50508, +50517, +50638, +50718, +50726, +50777, +50793, +50869, +50893, +52556, +53422, +53503, +53575, +53653, +53666, +53694, +53695, +53700, +53717, +53760, +53808, +53845, +54002, +54082, +54119, +54132, +54152, +54199, +54236, +54242, +54303, +54451, +54456, +54479, +54506, +54507, +54512, +55400, +55459, +55459, +55604, +55611, +55614, +56219, +56226 +], +"TypeScript:lib/typingsInstaller.js": [ +134, +182, +188, +199, +203, +206, +213, +216, +224, +228, +231, +234, +237, +257, +1049, +1064, +1074, +1700, +1744, +2088, +2147, +2155, +2178, +2193, +2224, +2227, +2239, +2242, +2245, +2253, +2258, +2278, +2295, +2300, +2305, +2308, +2312, +2316, +2324, +2329, +2335, +2345, +2348, +2351, +2364, +2370, +2373, +2383, +2384, +2386, +2387, +5737, +5796, +5796, +5941, +5948, +5951, +6263, +6268, +6302, +6313, +6322, +6333, +6354, +6366, +6580, +6672, +6675, +6696, +6896, +7152, +7209, +7212, +7225, +7235, +7257, +7570, +7586, +7604, +7612, +7631, +7634, +7717, +7721 +] +} diff --git a/its/ruling/src/test/expected/jsts/TypeScript/typescript-S2004.json b/its/ruling/src/test/expected/jsts/TypeScript/typescript-S2004.json new file mode 100644 index 00000000000..46d97bb1fef --- /dev/null +++ b/its/ruling/src/test/expected/jsts/TypeScript/typescript-S2004.json @@ -0,0 +1,185 @@ +{ +"TypeScript:Gulpfile.ts": [ +677, +766, +798, +940 +], +"TypeScript:scripts/errorCheck.ts": [ +25 +], +"TypeScript:scripts/importDefinitelyTypedTests/importDefinitelyTypedTests.ts": [ +119 +], +"TypeScript:src/compiler/checker.ts": [ +669, +814, +1826, +1993, +2004, +2014, +2459, +2470, +2483, +2535, +2565, +2570, +2632, +2706, +2707, +2772, +2810, +2843, +2995, +3024, +3072, +3136, +3149, +3168, +3208, +3223, +3277, +3283, +3294, +3307, +3359, +3394, +3475, +3481, +3513, +3769, +11260, +11386, +11394, +11426, +11429, +11467, +11472, +11525, +11529, +11575, +11588, +11593, +18302, +18323, +18351, +18569, +19198, +19569, +20526, +21051, +22093 +], +"TypeScript:src/compiler/declarationEmitter.ts": [ +228, +230, +1039, +1113, +1139, +1321 +], +"TypeScript:src/compiler/program.ts": [ +708, +1102, +1172, +1234, +1260, +1267 +], +"TypeScript:src/compiler/sys.ts": [ +114, +126, +142, +146, +153, +158, +162, +310, +327, +333, +337, +364 +], +"TypeScript:src/harness/compilerRunner.ts": [ +93, +102, +109, +144, +153, +181 +], +"TypeScript:src/harness/fourslashRunner.ts": [ +53 +], +"TypeScript:src/harness/harness.ts": [ +1342, +1477, +1503 +], +"TypeScript:src/harness/harnessLanguageService.ts": [ +738, +770 +], +"TypeScript:src/harness/instrumenter.ts": [ +28 +], +"TypeScript:src/harness/projectsRunner.ts": [ +180, +184, +185, +186, +187, +188, +256, +352, +408, +411, +449, +537 +], +"TypeScript:src/harness/rwcRunner.ts": [ +62, +71, +147, +162, +168, +178, +196, +211, +230, +231 +], +"TypeScript:src/harness/test262Runner.ts": [ +43, +70, +77, +93 +], +"TypeScript:src/services/breakpoints.ts": [ +525, +548 +], +"TypeScript:src/services/classifier.ts": [ +541 +], +"TypeScript:src/services/codefixes/importFixes.ts": [ +300, +307, +333, +401, +530, +540, +548, +553 +], +"TypeScript:src/services/documentRegistry.ts": [ +127, +134 +], +"TypeScript:src/services/navigationBar.ts": [ +520 +], +"TypeScript:src/services/services.ts": [ +1923 +] +} diff --git a/its/ruling/src/test/expected/jsts/ace/javascript-S2004.json b/its/ruling/src/test/expected/jsts/ace/javascript-S2004.json new file mode 100644 index 00000000000..9c7b5bc40b4 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/ace/javascript-S2004.json @@ -0,0 +1,1236 @@ +{ +"ace:Makefile.dryice.js": [ +254, +255, +256, +677, +724, +744 +], +"ace:doc/template/resources/javascripts/jquery-scrollspy.js": [ +37 +], +"ace:experiments/animate_folding.html": [ +218 +], +"ace:lib/ace/mode/css/csslint.js": [ +55, +55, +244, +291, +668, +709, +761, +3331, +3832, +3871, +3909, +4047, +4296, +4314, +4359, +4410, +4455, +4589, +5679, +5890, +5958, +6000, +6490, +6512, +6605, +6890, +6935, +7019, +7421, +7432, +7447, +7457, +7464, +7471, +7495, +7655, +7666, +7671, +7676, +7681, +7686, +7731, +7740, +7749, +7760, +7779, +7816, +7827, +7840, +7859, +7876, +8198, +8308, +8313, +8350, +8405, +8409, +8439, +8558, +8562, +8566, +8570, +8582, +8685, +8693, +8697, +8747, +8789, +8830, +8841, +8878, +8882, +8886, +8914, +8943, +8953, +8983, +8989, +9018, +9027, +9056, +9065, +9075, +9121, +9178, +9184, +9188, +9218, +9248, +9258, +9287, +9317, +9321, +9337, +9375, +9389, +9408, +9451, +9484, +9519, +9566, +9570, +9594, +9598, +9624, +9628, +9654, +9727, +9732, +9756, +9791, +9823, +9829, +9839, +9877, +9905, +9943, +10063, +10069, +10109, +10152, +10185, +10213, +10221, +10231, +10242, +10320, +10328, +10388, +10397, +10512, +10530, +10542, +10620, +10630, +10707 +], +"ace:lib/ace/mode/css_worker.js": [ +68, +71, +87 +], +"ace:lib/ace/mode/html/saxparser.js": [ +2, +871, +891, +898, +919, +926, +944, +961, +979, +992, +1005, +1029, +1042, +1055, +1079, +1095, +1108, +1131, +1143, +1155, +1176, +1197, +1219, +1236, +1249, +1273, +1292, +1315, +1338, +1364, +1377, +1396, +1432, +1453, +1478, +1507, +1563, +1594, +1627, +1649, +1669, +1702, +1718, +1739, +1757, +1766, +1795, +1806, +1829, +1852, +1871, +1894, +1923, +1943, +1961, +1985, +2007, +2063, +2084, +2113, +2134, +2155, +2184, +2211, +2232, +2261, +2282, +2303, +2323, +2476, +2489, +2494, +2497, +2506, +2515, +2522, +2528, +2532, +2646, +2655, +2661, +2667, +2679, +2684, +2688, +2696, +2701, +2706, +2711, +2723, +2727, +2731, +2735, +2741, +2747, +2763, +2769, +2778, +2784, +2797, +2816, +2831, +2835, +2839, +2843, +2863, +2868, +2876, +2881, +2886, +2891, +2921, +2933, +2943, +2947, +2951, +2955, +2962, +2967, +2974, +2978, +2983, +2988, +2997, +3002, +3006, +3034, +3039, +3049, +3053, +3059, +3064, +3072, +3076, +3081, +3086, +3090, +3265, +3284, +3289, +3293, +3304, +3318, +3324, +3332, +3343, +3353, +3378, +3385, +3395, +3408, +3413, +3424, +3436, +3443, +3456, +3464, +3473, +3479, +3483, +3490, +3496, +3509, +3544, +3554, +3559, +3563, +3580, +3584, +3589, +3596, +3603, +3608, +3627, +3636, +3645, +3658, +3675, +3693, +3705, +3719, +3730, +3744, +3779, +3783, +3790, +3794, +3815, +3822, +3826, +3862, +3866, +3876, +3880, +3896, +3900, +3910, +3914, +3937, +3941, +3952, +3956, +3962, +3973, +3977, +3985, +4008, +4032, +4065, +4077, +4081, +4085, +4090, +4097, +4104, +4109, +4114, +4136, +4140, +4144, +4148, +4152, +4156, +4170, +4174, +4215, +4228, +4235, +4241, +4246, +4252, +4257, +4264, +4268, +4284, +4293, +4300, +4315, +4319, +4330, +4344, +4350, +4356, +4368, +4374, +4412, +4416, +4422, +4428, +4440, +4444, +4454, +4465, +4469, +4502, +4514, +4521, +4529, +4537, +4552, +4557, +4567, +4575, +4579, +4587, +4591, +4621, +4625, +4631, +4635, +4643, +4679, +4683, +4690, +4697, +4701, +4712, +4720, +4730, +4734, +4738, +4750, +4752, +4756, +4772, +4776, +4780, +4795, +4806, +4814, +4818, +4824, +4845, +5395, +5408, +5430, +9472, +9514, +9547, +9574, +9632, +9644, +9649, +9660, +9773, +9792, +9797, +9817, +9876, +9899, +9904, +9909, +9914, +9919, +9924, +9929, +9934, +9939, +9944, +9949, +9954, +9960, +9965, +9977, +9982, +9991, +10001, +10021, +10033, +10203, +10362, +10384, +10389, +10400, +10406 +], +"ace:lib/ace/mode/html_worker.js": [ +70, +79 +], +"ace:lib/ace/mode/javascript/jshint.js": [ +15, +106, +108, +112, +116, +120, +124, +134, +141, +145, +267, +281, +296, +316, +339, +361, +379, +390, +409, +427, +440, +459, +523, +541, +555, +568, +586, +601, +621, +639, +652, +677, +693, +707, +733, +751, +768, +781, +794, +808, +827, +838, +851, +864, +877, +891, +920, +949, +965, +984, +1002, +1071, +1086, +1098, +1110, +1125, +1146, +1162, +1176, +1190, +1202, +1217, +1229, +1241, +1254, +1275, +1301, +1312, +1324, +1339, +1369, +1394, +1413, +1432, +1476, +1490, +1504, +1515, +1529, +1567, +1603, +1625, +1681, +1710, +1750, +1783, +1813, +1842, +1874, +1896, +1913, +2386, +2394, +4522, +4549, +4553, +4580, +4619, +4626, +4633, +4652, +4792, +4813, +4820, +4868, +4875, +4879, +4887, +4902, +5221, +5252, +5274, +5324, +5328, +5380, +5458, +5462, +5468, +5489, +5569, +5596, +5612, +5632, +5644, +5663, +5698, +5718, +5741, +5769, +5800, +5824, +5863, +5899, +5933, +5961, +6006, +6081, +6110, +6134, +6158, +6188, +6216, +6246, +6270, +6315, +6348, +6448, +6471, +6525, +6680, +6693, +6701, +6710, +6731, +6771, +6778, +6797, +6798, +6799, +6800, +6810, +6812, +6822, +6827, +6847, +6863, +6872, +6880, +6887, +6914, +6932, +6952, +6961, +6976, +6993, +7023, +7044, +7055, +7066, +7089, +7109, +7120, +7134, +7150, +7230, +7277, +7315, +7444, +7480, +7513, +7547, +7554, +7653, +7673, +7799, +7848, +7902, +7972, +7985, +8016, +8135, +8187, +8195, +8254, +8381, +8420, +8427, +8460, +8472, +8488, +8661, +8674, +8839, +8857, +8974, +9001, +9004, +9007, +9024, +9049, +9138, +9207, +9244, +9291, +9361, +9375, +9391, +9519, +9526, +9546, +9787, +9808, +9831, +9860, +9877, +9918, +9934, +9937, +9994, +10030, +10039, +10067, +10170, +10175, +10357, +10378, +10427, +10482, +10516, +10561, +10588, +10606, +10611, +10642, +10743, +10835, +10851, +10856, +11121, +11128, +11258, +11262, +11392, +11413, +11618, +11817, +11821, +11825, +11851, +11877, +11903, +11940, +11972, +11976, +11980, +11984, +11988, +12029, +12052, +12101, +12114, +12204, +12230, +12258, +12273, +12297, +12309, +12353, +12457, +12494, +12500, +12535, +12595, +12600, +12757, +12803, +12991, +13005, +13009, +13048, +13073, +13183, +13189, +13209, +13231, +13249, +13371, +13427, +13448, +13454, +13462, +15153, +15176, +15184, +15192, +15202, +15214, +15246, +15298, +15315, +15328, +15354, +15371, +15377, +15390, +15405, +15606, +15654, +15693, +15712, +15737, +15749, +15761, +15774, +15805, +15826, +15847, +15957, +15983, +16007, +16023, +16040, +16051, +16094, +16103, +16127, +16136, +16371, +16389, +16406, +16422, +16463, +16494, +18242, +18280, +18322, +18355, +18382, +18440, +18452, +18457, +18468, +18581, +18600, +18605, +18625, +18684, +18707, +18712, +18717, +18722, +18727, +18732, +18737, +18742, +18747, +18752, +18757, +18762, +18768, +18773, +18785, +18790, +18799, +18809, +18829, +18841, +19010 +], +"ace:lib/ace/mode/jsoniq.js": [ +30, +95, +99, +127 +], +"ace:lib/ace/mode/xml/dom-parser.js": [ +51, +61, +63 +], +"ace:lib/ace/mode/xml/dom.js": [ +774, +785 +], +"ace:lib/ace/mode/xml_worker.js": [ +60, +68, +76 +], +"ace:lib/ace/mode/xquery.js": [ +58, +124, +128, +133, +169 +], +"ace:lib/ace/mode/xquery/jsoniq_lexer.js": [ +15, +36, +57, +65, +70, +78, +84, +98, +118, +256, +286, +329, +366, +403, +421, +439, +460, +481, +502, +526, +550, +577, +606, +635, +694, +1041, +1436, +1450, +1460, +1474, +1484, +1494, +1508, +4239, +4373, +4378, +4379, +4381, +4388, +4400 +], +"ace:lib/ace/mode/xquery/xquery_lexer.js": [ +15, +36, +57, +65, +70, +78, +84, +98, +118, +253, +283, +326, +363, +400, +418, +436, +457, +478, +499, +523, +550, +577, +606, +635, +694, +1041, +1436, +1450, +1460, +1474, +1484, +1494, +1508, +4205, +4210, +4211, +4213, +4220, +4232, +4308 +], +"ace:lib/ace/mode/xquery_worker.js": [ +45, +53 +], +"ace:lib/ace/mode/yaml/yaml-lint.js": [ +1, +47, +466, +540, +2705, +2709, +2719, +2733, +2749, +2785, +2789, +2951, +2964, +2973, +2974, +3215, +3222, +3413, +3420, +3518, +4052, +4071, +4090, +4107, +4121, +4133, +4147, +4168, +4200, +4225, +4248, +4266, +4281, +4296, +4314, +4329, +4350, +4368, +4382, +4408, +4424, +4438, +4465, +4483, +4501, +4516, +4529, +4543, +4566, +4578, +4592, +4609, +4622, +4636, +4667, +4703, +4720, +4736, +4755, +4788, +4804, +4816, +4831, +4843, +4869, +4906, +4976, +4988, +5005, +5023, +5037, +5050, +5071, +5104, +5137, +5162, +5177, +5189, +5216, +5230, +5250, +5271, +5285, +5296, +5312, +5329, +5342, +5382, +5409, +5453, +5475, +5475, +5530, +5559, +5599, +5635, +5665, +5694, +5726, +5782, +5809, +5844, +5867, +5889, +5906 +], +"ace:lib/ace/mode/yaml_worker.js": [ +31 +], +"ace:lib/ace/worker/worker.js": [ +137, +173, +181 +], +"ace:lib/ace/worker/worker_client.js": [ +97 +], +"ace:lib/ace/worker/worker_client_v2.js": [ +50, +163 +], +"ace:src/autocomplete.js": [ +205 +], +"ace:src/autocomplete_test.js": [ +33 +], +"ace:src/config.js": [ +116 +], +"ace:src/edit_session/folding.js": [ +514 +], +"ace:src/editor.js": [ +504, +547 +], +"ace:src/ext/code_lens.js": [ +144 +], +"ace:src/ext/code_lens_test.js": [ +117, +150 +], +"ace:src/ext/options.js": [ +273, +296, +305 +], +"ace:src/ext/prompt.js": [ +235, +327, +400, +406 +], +"ace:src/ext/searchbox.js": [ +80 +], +"ace:src/keyboard/hash_handler.js": [ +75 +], +"ace:src/keyboard/textinput.js": [ +645 +], +"ace:src/keyboard/vim_test.js": [ +293, +306, +311, +5484, +5485, +5486 +], +"ace:src/layer/cursor.js": [ +138 +], +"ace:src/mode/_test/highlight_rules_test.js": [ +174, +204 +], +"ace:src/mode/text.js": [ +260 +], +"ace:src/mode/text_highlight_rules.js": [ +153, +161 +], +"ace:src/mouse/touch_handler.js": [ +50 +], +"ace:src/snippets.js": [ +148, +150, +395 +], +"ace:src/test/asyncjs/async.js": [ +32, +56, +81, +109, +120, +145, +167, +200, +228, +241, +265, +283, +298, +319, +346 +], +"ace:src/test/asyncjs/test.js": [ +35, +89, +103, +110 +], +"ace:src/test/mockdom.js": [ +187, +483, +500, +516 +], +"ace:src/virtual_renderer_test.js": [ +320 +], +"ace:tool/mode_creator.js": [ +86, +187 +] +} diff --git a/its/ruling/src/test/expected/jsts/ag-grid/typescript-S2004.json b/its/ruling/src/test/expected/jsts/ag-grid/typescript-S2004.json new file mode 100644 index 00000000000..bf0b352df53 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/ag-grid/typescript-S2004.json @@ -0,0 +1,5 @@ +{ +"ag-grid:src/ts/gridPanel/gridPanel.ts": [ +397 +] +} diff --git a/its/ruling/src/test/expected/jsts/amplify/javascript-S2004.json b/its/ruling/src/test/expected/jsts/amplify/javascript-S2004.json new file mode 100644 index 00000000000..f1d29f4d64f --- /dev/null +++ b/its/ruling/src/test/expected/jsts/amplify/javascript-S2004.json @@ -0,0 +1,8 @@ +{ +"amplify:src/store.js": [ +279 +], +"amplify:test-jquery-versions.js": [ +38 +] +} diff --git a/its/ruling/src/test/expected/jsts/angular.js/javascript-S2004.json b/its/ruling/src/test/expected/jsts/angular.js/javascript-S2004.json new file mode 100644 index 00000000000..634870b3d9a --- /dev/null +++ b/its/ruling/src/test/expected/jsts/angular.js/javascript-S2004.json @@ -0,0 +1,503 @@ +{ +"angular.js:benchmarks/event-delegation-bp/app.js": [ +20 +], +"angular.js:benchmarks/parsed-expressions-bp/app.js": [ +24, +39 +], +"angular.js:benchmarks/repeat-animate-bp/common.js": [ +43, +52, +90, +108 +], +"angular.js:docs/app/assets/js/angular-bootstrap/dropdown-toggle.js": [ +134 +], +"angular.js:docs/app/e2e/app.scenario.js": [ +16, +125, +134, +146, +153 +], +"angular.js:docs/app/src/examples.js": [ +34, +40, +120, +150, +181 +], +"angular.js:docs/app/src/search.js": [ +25, +115, +128, +158, +179, +203, +228 +], +"angular.js:docs/app/test/errorsSpec.js": [ +26, +45, +72, +124 +], +"angular.js:docs/config/processors/keywords.js": [ +71, +97 +], +"angular.js:docs/config/processors/pages-data.js": [ +62, +69, +78 +], +"angular.js:docs/config/processors/versions-data.js": [ +52, +59, +62, +65, +68, +76, +83, +126, +130 +], +"angular.js:docs/config/tag-defs/deprecated.spec.js": [ +28 +], +"angular.js:karma-shared.conf.js": [ +229 +], +"angular.js:lib/grunt/utils.js": [ +251 +], +"angular.js:lib/grunt/validate-angular-files.js": [ +40 +], +"angular.js:scripts/code.angularjs.org-firebase/functions/index.js": [ +62, +120, +125, +158 +], +"angular.js:scripts/compare-master-to-stable.js": [ +56, +62 +], +"angular.js:src/Angular.js": [ +1826 +], +"angular.js:src/auto/injector.js": [ +827 +], +"angular.js:src/loader.js": [ +85, +95 +], +"angular.js:src/ng/anchorScroll.js": [ +182, +266 +], +"angular.js:src/ng/animate.js": [ +106, +117, +650 +], +"angular.js:src/ng/animateCss.js": [ +48, +59 +], +"angular.js:src/ng/animateRunner.js": [ +10, +20, +23, +46, +66, +70, +82, +87, +115, +170, +178 +], +"angular.js:src/ng/cacheFactory.js": [ +162, +191, +214, +242, +259, +283, +292, +311, +331 +], +"angular.js:src/ng/compile.js": [ +1522, +1647, +1671, +1950, +2022, +2254, +2290, +2297, +2386, +2531, +2614, +2692, +2826, +2849, +3028, +3046, +3058, +3187, +3208, +3430, +3555, +3569, +3603, +3681, +3687, +3717, +3736, +3830, +3881, +4006, +4032, +4159, +4180, +4188 +], +"angular.js:src/ng/controller.js": [ +138 +], +"angular.js:src/ng/directive/attrs.js": [ +399, +428 +], +"angular.js:src/ng/directive/form.js": [ +553 +], +"angular.js:src/ng/directive/input.js": [ +2365 +], +"angular.js:src/ng/directive/ngBind.js": [ +62, +130, +200 +], +"angular.js:src/ng/directive/ngClass.js": [ +30, +41, +46, +51, +65, +80, +93 +], +"angular.js:src/ng/directive/ngEventDirs.js": [ +69 +], +"angular.js:src/ng/directive/ngIf.js": [ +95, +118 +], +"angular.js:src/ng/directive/ngInclude.js": [ +206, +224 +], +"angular.js:src/ng/directive/ngList.js": [ +110 +], +"angular.js:src/ng/directive/ngModel.js": [ +665, +667, +1351, +1357, +1365, +1369 +], +"angular.js:src/ng/directive/ngOptions.js": [ +396, +399, +517, +529, +543, +577, +656 +], +"angular.js:src/ng/directive/ngRef.js": [ +286 +], +"angular.js:src/ng/directive/ngRepeat.js": [ +531 +], +"angular.js:src/ng/directive/ngSwitch.js": [ +156, +180 +], +"angular.js:src/ng/directive/ngTransclude.js": [ +196, +207, +215 +], +"angular.js:src/ng/directive/select.js": [ +775, +790, +801 +], +"angular.js:src/ng/directive/validators.js": [ +210, +220 +], +"angular.js:src/ng/filter/orderBy.js": [ +597, +630 +], +"angular.js:src/ng/http.js": [ +43, +112, +1064, +1081, +1094, +1098, +1115, +1140, +1161, +1320, +1332, +1425, +1454, +1480, +1494, +1498, +1519 +], +"angular.js:src/ng/interpolate.js": [ +115, +297, +313, +330, +349, +360 +], +"angular.js:src/ng/intervalFactory.js": [ +8 +], +"angular.js:src/ng/jsonpCallbacks.js": [ +18 +], +"angular.js:src/ng/location.js": [ +956, +997 +], +"angular.js:src/ng/log.js": [ +134, +159 +], +"angular.js:src/ng/parse.js": [ +1039, +1858, +1875, +1916, +1922, +1933, +1940, +1960, +1981, +2003 +], +"angular.js:src/ng/q.js": [ +606, +609 +], +"angular.js:src/ng/raf.js": [ +17, +23 +], +"angular.js:src/ng/rootScope.js": [ +426, +474, +477, +484, +491, +502, +519, +606, +688, +1047, +1121, +1225, +1273, +1316, +1317, +1386, +1494 +], +"angular.js:src/ng/sce.js": [ +293, +301, +304, +905, +1170, +1173, +1176 +], +"angular.js:src/ng/templateRequest.js": [ +87, +98, +101, +105 +], +"angular.js:src/ng/testability.js": [ +32 +], +"angular.js:src/ng/timeout.js": [ +55 +], +"angular.js:src/ngAnimate/animateCss.js": [ +387, +656, +678, +682, +686, +751, +761, +780, +813 +], +"angular.js:src/ngAnimate/animateCssDriver.js": [ +49, +81, +119, +141, +153, +157, +174, +186, +199 +], +"angular.js:src/ngAnimate/animateJs.js": [ +63, +68, +78, +88, +144, +187, +228 +], +"angular.js:src/ngAnimate/animateJsDriver.js": [ +13 +], +"angular.js:src/ngAnimate/animateQueue.js": [ +129, +162, +204, +218, +243, +498, +578, +599, +610 +], +"angular.js:src/ngAnimate/animation.js": [ +53, +77, +124, +125, +165, +270, +285, +368, +388, +401, +412, +426, +433 +], +"angular.js:src/ngAnimate/ngAnimateSwap.js": [ +108 +], +"angular.js:src/ngAria/aria.js": [ +145, +270, +274, +281, +311, +316, +321, +335, +341, +343, +388 +], +"angular.js:src/ngMessages/messages.js": [ +410, +437, +462, +610, +747, +766, +769, +794, +807 +], +"angular.js:src/ngMock/angular-mocks.js": [ +544, +594, +606, +637, +670, +915, +945, +964, +1042, +1483, +1487, +1496, +1503, +2066, +2077, +2541, +3094, +3380, +3389 +], +"angular.js:src/ngResource/resource.js": [ +611, +623, +629, +666, +681, +692, +696, +700, +708 +], +"angular.js:src/ngRoute/directive/ngView.js": [ +209, +230 +], +"angular.js:src/ngRoute/route.js": [ +552, +558, +662, +675, +679, +715, +763, +800, +840 +], +"angular.js:src/ngSanitize/sanitize.js": [ +158, +621 +], +"angular.js:src/ngTouch/directive/ngSwipe.js": [ +98, +122, +126, +129 +] +} diff --git a/its/ruling/src/test/expected/jsts/ant-design/javascript-S2004.json b/its/ruling/src/test/expected/jsts/ant-design/javascript-S2004.json new file mode 100644 index 00000000000..3f85df57280 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/ant-design/javascript-S2004.json @@ -0,0 +1,369 @@ +{ +"ant-design:components/_util/__tests__/useSyncState.test.js": [ +12 +], +"ant-design:components/_util/__tests__/util.test.js": [ +47, +63, +77, +88, +102, +128, +182, +193, +225 +], +"ant-design:components/avatar/__tests__/Avatar.test.js": [ +169 +], +"ant-design:components/breadcrumb/__tests__/router.test.js": [ +39, +40, +56, +57, +61 +], +"ant-design:components/carousel/__tests__/index.test.js": [ +89 +], +"ant-design:components/cascader/__tests__/index.test.js": [ +176, +505, +561, +626 +], +"ant-design:components/checkbox/__tests__/group.test.js": [ +243, +249 +], +"ant-design:components/collapse/__tests__/index.test.js": [ +144, +156 +], +"ant-design:components/config-provider/__tests__/components.test.js": [ +63, +248, +255, +262, +269, +371, +523, +524 +], +"ant-design:components/config-provider/__tests__/form.test.js": [ +41, +49, +60, +68 +], +"ant-design:components/config-provider/__tests__/index.test.js": [ +66 +], +"ant-design:components/config-provider/__tests__/memo.test.js": [ +24, +28, +34, +56, +61, +67 +], +"ant-design:components/date-picker/__tests__/RangePicker.test.js": [ +53, +57 +], +"ant-design:components/descriptions/__tests__/index.test.js": [ +210 +], +"ant-design:components/drawer/__tests__/DrawerEvent.test.js": [ +111, +119 +], +"ant-design:components/form/__tests__/index.test.js": [ +101, +207, +246, +255, +259, +419, +611, +727, +891, +1027, +1122 +], +"ant-design:components/form/__tests__/list.test.js": [ +21, +45, +63, +117, +127, +183, +210, +219, +230 +], +"ant-design:components/input/__tests__/textarea.test.js": [ +16, +102, +259, +274, +280, +307, +482, +545 +], +"ant-design:components/layout/__tests__/index.test.js": [ +46, +49, +115, +133 +], +"ant-design:components/locale-provider/__tests__/config.test.js": [ +31, +34 +], +"ant-design:components/menu/__tests__/index.test.js": [ +326, +503, +518, +519, +553, +568, +569, +575, +590, +591, +597, +612, +613, +619, +634, +635, +888 +], +"ant-design:components/message/__tests__/config.test.js": [ +176 +], +"ant-design:components/message/__tests__/hooks.test.js": [ +32, +66, +99, +128, +157, +191, +218 +], +"ant-design:components/message/__tests__/index.test.js": [ +147, +188, +207, +208, +229, +233 +], +"ant-design:components/modal/__tests__/confirm.test.js": [ +235, +309, +335, +369, +415, +500, +510, +567 +], +"ant-design:components/notification/__tests__/hooks.test.js": [ +31, +65, +96 +], +"ant-design:components/notification/__tests__/index.test.js": [ +199, +224, +287 +], +"ant-design:components/notification/__tests__/placement.test.js": [ +42, +56, +64, +75, +83, +93, +101, +114, +122, +133, +141, +151, +218, +226, +237, +241 +], +"ant-design:components/popconfirm/__tests__/index.test.js": [ +71, +137, +238 +], +"ant-design:components/progress/__tests__/index.test.js": [ +225 +], +"ant-design:components/radio/__tests__/group.test.js": [ +213 +], +"ant-design:components/radio/__tests__/radio-button.test.js": [ +228 +], +"ant-design:components/select/__tests__/index.test.js": [ +64 +], +"ant-design:components/space/__tests__/index.test.js": [ +125, +135 +], +"ant-design:components/table/__tests__/Table.expand.test.js": [ +93, +110 +], +"ant-design:components/table/__tests__/Table.filter.test.js": [ +184, +187, +190, +194, +635, +680, +943, +973, +998, +1035, +1128, +1129, +1706, +1712, +1764, +1777, +1832, +1844, +1852, +1865, +1874, +1886, +1895, +1922, +1933, +1953, +1959, +1970, +1983, +2002, +2015, +2037, +2053, +2240 +], +"ant-design:components/table/__tests__/Table.pagination.test.js": [ +101, +599, +610 +], +"ant-design:components/table/__tests__/Table.rowSelection.test.js": [ +553, +578, +604, +899, +1247, +1273, +1313, +1353, +1367, +1399, +1440, +1482, +1521 +], +"ant-design:components/table/__tests__/Table.sorter.test.js": [ +516 +], +"ant-design:components/tabs/__tests__/index.test.js": [ +71 +], +"ant-design:components/timeline/__tests__/index.test.js": [ +92 +], +"ant-design:components/tooltip/__tests__/tooltip.test.js": [ +133, +333 +], +"ant-design:components/transfer/__tests__/customize.test.js": [ +41 +], +"ant-design:components/transfer/__tests__/index.test.js": [ +334, +478 +], +"ant-design:components/tree/__tests__/directory.test.js": [ +51, +57, +61, +72, +78, +82, +94, +98, +111, +118 +], +"ant-design:components/tree/__tests__/index.test.js": [ +60, +137, +143 +], +"ant-design:components/typography/__tests__/ellipsis.test.js": [ +256, +259, +283, +291 +], +"ant-design:components/typography/__tests__/index.test.js": [ +90, +239, +347, +361, +365, +371, +387, +396, +407 +], +"ant-design:components/upload/__tests__/upload.test.js": [ +59, +136, +196, +386, +498, +667, +677 +], +"ant-design:components/upload/__tests__/uploadlist.test.js": [ +441, +719, +723, +733, +962, +1015, +1028, +1064, +1112, +1127, +1257, +1273 +], +"ant-design:site/theme/static/template.html": [ +51 +], +"ant-design:site/theme/template/Content/ComponentOverview.jsx": [ +121 +], +"ant-design:site/theme/template/Content/MainContent.jsx": [ +155 +] +} diff --git a/its/ruling/src/test/expected/jsts/ant-design/typescript-S2004.json b/its/ruling/src/test/expected/jsts/ant-design/typescript-S2004.json new file mode 100644 index 00000000000..6f6e244f27c --- /dev/null +++ b/its/ruling/src/test/expected/jsts/ant-design/typescript-S2004.json @@ -0,0 +1,182 @@ +{ +"ant-design:components/_util/hooks/usePatchElement.tsx": [ +16 +], +"ant-design:components/affix/__tests__/Affix.test.tsx": [ +148, +152, +162, +165, +177, +184 +], +"ant-design:components/affix/utils.ts": [ +72 +], +"ant-design:components/anchor/__tests__/Anchor.test.tsx": [ +183, +375, +402, +440, +467, +551, +578, +617, +646, +647, +677, +682, +703, +704 +], +"ant-design:components/back-top/index.tsx": [ +96 +], +"ant-design:components/badge/__tests__/index.test.tsx": [ +79 +], +"ant-design:components/calendar/generateCalendar.tsx": [ +275 +], +"ant-design:components/checkbox/Group.tsx": [ +83, +106, +107 +], +"ant-design:components/config-provider/__tests__/theme.test.ts": [ +27 +], +"ant-design:components/config-provider/context.tsx": [ +94 +], +"ant-design:components/date-picker/generatePicker/generateRangePicker.tsx": [ +77, +78 +], +"ant-design:components/date-picker/generatePicker/generateSinglePicker.tsx": [ +59, +104 +], +"ant-design:components/form/FormItem.tsx": [ +438 +], +"ant-design:components/form/__tests__/list-noStyle.test.tsx": [ +21, +40 +], +"ant-design:components/form/__tests__/ref.test.tsx": [ +36 +], +"ant-design:components/form/__tests__/type.test.tsx": [ +26, +50, +54, +76 +], +"ant-design:components/form/hooks/useForm.ts": [ +34 +], +"ant-design:components/form/hooks/useFrameState.ts": [ +33 +], +"ant-design:components/input/Input.tsx": [ +188 +], +"ant-design:components/input/__tests__/index.test.tsx": [ +90, +211, +395 +], +"ant-design:components/layout/layout.tsx": [ +73, +76 +], +"ant-design:components/message/hooks/useMessage.tsx": [ +40, +60, +65 +], +"ant-design:components/modal/__tests__/Modal.test.tsx": [ +80, +83 +], +"ant-design:components/modal/__tests__/hook.test.tsx": [ +33, +80, +106, +143, +174 +], +"ant-design:components/modal/useModal/HookModal.tsx": [ +46 +], +"ant-design:components/modal/useModal/index.tsx": [ +61, +70, +81 +], +"ant-design:components/notification/hooks/useNotification.tsx": [ +42, +55 +], +"ant-design:components/segmented/__tests__/index.test.tsx": [ +228, +237 +], +"ant-design:components/statistic/__tests__/index.test.tsx": [ +94, +142, +157, +167 +], +"ant-design:components/table/Table.tsx": [ +162 +], +"ant-design:components/table/hooks/useFilter/index.tsx": [ +172 +], +"ant-design:components/table/hooks/useLazyKVMap.ts": [ +29 +], +"ant-design:components/table/hooks/useSelection.tsx": [ +280, +297, +330, +346, +382, +387, +399, +400, +421, +492, +493, +528, +529 +], +"ant-design:components/table/hooks/useSorter.tsx": [ +185, +194 +], +"ant-design:components/transfer/__tests__/dropdown.test.tsx": [ +99, +122 +], +"ant-design:components/typography/__tests__/copy.test.tsx": [ +18, +225, +242, +259 +], +"ant-design:components/upload/Upload.tsx": [ +266 +], +"ant-design:components/upload/UploadList/index.tsx": [ +73 +], +"ant-design:components/upload/__tests__/type.test.tsx": [ +45 +], +"ant-design:site/theme/template/Layout/Header/index.tsx": [ +66 +] +} diff --git a/its/ruling/src/test/expected/jsts/backbone/javascript-S2004.json b/its/ruling/src/test/expected/jsts/backbone/javascript-S2004.json new file mode 100644 index 00000000000..48144022ba3 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/backbone/javascript-S2004.json @@ -0,0 +1,5 @@ +{ +"backbone:backbone.js": [ +1528 +] +} diff --git a/its/ruling/src/test/expected/jsts/console/typescript-S2004.json b/its/ruling/src/test/expected/jsts/console/typescript-S2004.json new file mode 100644 index 00000000000..760e6f967ef --- /dev/null +++ b/its/ruling/src/test/expected/jsts/console/typescript-S2004.json @@ -0,0 +1,36 @@ +{ +"console:src/actions/databrowser/data.ts": [ +103, +133, +175, +238, +313, +317, +369 +], +"console:src/actions/gettingStarted.tsx": [ +57, +121 +], +"console:src/components/MapProps/MapProps.tsx": [ +14 +], +"console:src/views/PermissionsView/PermissionPopup/PermissionConditions.tsx": [ +413 +], +"console:src/views/ProjectRootView/AddProjectPopup.tsx": [ +73 +], +"console:src/views/SchemaView/SchemaViewer.tsx": [ +62 +], +"console:src/views/models/DatabrowserView/DatabrowserView.tsx": [ +191 +], +"console:src/views/models/DatabrowserView/RelationsPopup.tsx": [ +196 +], +"console:src/views/models/FieldPopup/BaseSettings.tsx": [ +228 +] +} diff --git a/its/ruling/src/test/expected/jsts/courselit/typescript-S2004.json b/its/ruling/src/test/expected/jsts/courselit/typescript-S2004.json new file mode 100644 index 00000000000..346a0e7aaea --- /dev/null +++ b/its/ruling/src/test/expected/jsts/courselit/typescript-S2004.json @@ -0,0 +1,5 @@ +{ +"courselit:apps/web/pages/_document.tsx": [ +37 +] +} diff --git a/its/ruling/src/test/expected/jsts/desktop/typescript-S2004.json b/its/ruling/src/test/expected/jsts/desktop/typescript-S2004.json new file mode 100644 index 00000000000..944e318ca7f --- /dev/null +++ b/its/ruling/src/test/expected/jsts/desktop/typescript-S2004.json @@ -0,0 +1,35 @@ +{ +"desktop:app/src/lib/git/core.ts": [ +147 +], +"desktop:app/src/lib/progress/from-process.ts": [ +77 +], +"desktop:app/src/lib/read-emoji.ts": [ +97, +121 +], +"desktop:app/src/lib/stores/app-store.ts": [ +3202, +4043, +4057, +4245 +], +"desktop:app/src/main-process/app-window.ts": [ +128 +], +"desktop:app/src/main-process/main.ts": [ +477, +481 +], +"desktop:app/src/ui/app.tsx": [ +240 +], +"desktop:script/pr-api.ts": [ +36, +40 +], +"desktop:script/publish.ts": [ +142 +] +} diff --git a/its/ruling/src/test/expected/jsts/eigen/javascript-S2004.json b/its/ruling/src/test/expected/jsts/eigen/javascript-S2004.json new file mode 100644 index 00000000000..206314ddb96 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/eigen/javascript-S2004.json @@ -0,0 +1,6 @@ +{ +"eigen:scripts/preheatGraphQLCache.js": [ +63, +67 +] +} diff --git a/its/ruling/src/test/expected/jsts/eigen/typescript-S2004.json b/its/ruling/src/test/expected/jsts/eigen/typescript-S2004.json new file mode 100644 index 00000000000..b39824ca7df --- /dev/null +++ b/its/ruling/src/test/expected/jsts/eigen/typescript-S2004.json @@ -0,0 +1,994 @@ +{ +"eigen:src/app/App.tsx": [ +80 +], +"eigen:src/app/Components/Artist/ArtistAbout/ArtistAbout.tests.tsx": [ +58, +72 +], +"eigen:src/app/Components/Artist/ArtistAbout/ArtistAboutShows.tests.tsx": [ +91, +110 +], +"eigen:src/app/Components/Artist/ArtistArtworks/CreateSavedSearchModal.tsx": [ +48 +], +"eigen:src/app/Components/Artist/ArtistConsignButton.tests.tsx": [ +85, +100, +115, +135, +171, +184, +220, +234, +237 +], +"eigen:src/app/Components/Artist/ArtistInsights/ArtistInsightsAuctionResults.tests.tsx": [ +61, +106, +122 +], +"eigen:src/app/Components/Artist/ArtistInsights/MarketStats.tests.tsx": [ +43, +76 +], +"eigen:src/app/Components/ArtistAutosuggest/ArtistAutosuggest.tests.tsx": [ +39 +], +"eigen:src/app/Components/ArtsyWebView.tests.tsx": [ +142, +161 +], +"eigen:src/app/Components/ArtworkFilter/ArtworkFilterStore.tsx": [ +85 +], +"eigen:src/app/Components/ArtworkFilter/Filters/AggregationOptionCommonValidation.tsx": [ +80, +86, +119 +], +"eigen:src/app/Components/ArtworkFilter/Filters/ColorsOptions.tests.tsx": [ +191, +192, +193, +197, +225, +231 +], +"eigen:src/app/Components/ArtworkFilter/Filters/PriceRangeOptions.tsx": [ +129 +], +"eigen:src/app/Components/ArtworkFilter/Filters/useMultiSelect.tests.tsx": [ +53 +], +"eigen:src/app/Components/ArtworkFilter/Filters/useMultiSelect.ts": [ +47, +84 +], +"eigen:src/app/Components/ArtworkFilter/components/ArtworkFilterOptionCheckboxItem.tests.tsx": [ +64 +], +"eigen:src/app/Components/ArtworkGrids/InfiniteScrollArtworksGrid.tests.tsx": [ +71 +], +"eigen:src/app/Components/Bidding/Screens/ConfirmBid.tests.tsx": [ +266, +285, +315, +398, +404, +415, +436, +444, +465, +473, +494, +502, +523, +531, +556, +563, +627, +635, +819, +822, +825, +877, +897 +], +"eigen:src/app/Components/Disappearable.tsx": [ +29, +44 +], +"eigen:src/app/Components/Home/ArtistRails/ArtistRail.tsx": [ +149, +200, +210 +], +"eigen:src/app/Components/Lists/AuctionResultListItem.tests.tsx": [ +42 +], +"eigen:src/app/Components/ParentAwareScrollView.tests.tsx": [ +25, +27 +], +"eigen:src/app/Components/PartnerEntityHeader.tests.tsx": [ +43 +], +"eigen:src/app/Components/SaleArtworkTileRailCard/SaleArtworkTileRailCard.tests.tsx": [ +39 +], +"eigen:src/app/Components/ShareSheet/ShareSheet.tests.tsx": [ +100, +129, +137, +144, +159, +186 +], +"eigen:src/app/Components/StickyTabPage/SnappyHorizontalRail.tsx": [ +30 +], +"eigen:src/app/Components/StickyTabPage/StickyTabPage.tsx": [ +151 +], +"eigen:src/app/Components/StickyTabPage/reanimatedHelpers.ts": [ +59 +], +"eigen:src/app/Scenes/Articles/Articles.tests.tsx": [ +27 +], +"eigen:src/app/Scenes/Artist/Artist.tests.tsx": [ +30 +], +"eigen:src/app/Scenes/Artist/ArtistSavedSearch.tests.tsx": [ +37 +], +"eigen:src/app/Scenes/ArtistArticles/ArtistArticles.tests.tsx": [ +42 +], +"eigen:src/app/Scenes/ArtistSeries/ArtistSeries.tests.tsx": [ +54, +102, +113 +], +"eigen:src/app/Scenes/ArtistSeries/ArtistSeriesArtworks.tests.tsx": [ +50 +], +"eigen:src/app/Scenes/ArtistSeries/ArtistSeriesHeader.tests.tsx": [ +43 +], +"eigen:src/app/Scenes/ArtistSeries/ArtistSeriesMeta.tsx": [ +69 +], +"eigen:src/app/Scenes/ArtistSeries/ArtistSeriesMoreSeries.tests.tsx": [ +96 +], +"eigen:src/app/Scenes/Artwork/Artwork.tests.tsx": [ +73, +137, +157, +178, +186, +215, +415, +435, +456, +488, +507, +540, +560, +576, +591 +], +"eigen:src/app/Scenes/Artwork/Artwork.tsx": [ +251 +], +"eigen:src/app/Scenes/Artwork/Components/ArtworkActions.tests.tsx": [ +210 +], +"eigen:src/app/Scenes/Artwork/Components/ArtworkExtraLinks/index.tests.tsx": [ +322, +336, +354, +372, +392, +396, +410 +], +"eigen:src/app/Scenes/Artwork/Components/AuctionPrice.tests.tsx": [ +98, +110, +122, +134, +149, +163, +177 +], +"eigen:src/app/Scenes/Artwork/Components/CommercialButtons/BidButton.tests.tsx": [ +201, +210, +219, +301, +314, +327 +], +"eigen:src/app/Scenes/Artwork/Components/CommercialButtons/BuyNowButton.tsx": [ +100, +116 +], +"eigen:src/app/Scenes/Artwork/Components/CommercialButtons/MakeOfferButton.tsx": [ +109, +125 +], +"eigen:src/app/Scenes/Artwork/Components/FollowArtistLink.tests.tsx": [ +39, +123 +], +"eigen:src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselFullScreen.tsx": [ +58 +], +"eigen:src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageZoomView.tsx": [ +170 +], +"eigen:src/app/Scenes/Artwork/Components/ImageCarousel/ImageCarousel.tests.tsx": [ +189, +202 +], +"eigen:src/app/Scenes/Artwork/Components/ImageCarousel/useAnimatedValue.tests.tsx": [ +14 +], +"eigen:src/app/Scenes/Artwork/Components/ImageCarousel/useSpringValue.tests.tsx": [ +14 +], +"eigen:src/app/Scenes/Artwork/Components/PartnerCard.tests.tsx": [ +213, +307 +], +"eigen:src/app/Scenes/ArtworkAttributionClassFAQ/ArtworkAttributionClassFAQ.tests.tsx": [ +32 +], +"eigen:src/app/Scenes/AuctionBuyersPremium/AuctionBuyersPremium.tests.tsx": [ +25, +41, +63, +78 +], +"eigen:src/app/Scenes/AuctionResult/AuctionResult.tests.tsx": [ +59, +84, +97, +107 +], +"eigen:src/app/Scenes/Collection/Components/CollectionHubsRails/FeaturedCollections/FeaturedCollectionsRail.tests.tsx": [ +143 +], +"eigen:src/app/Scenes/Collection/Screens/CollectionArtworks.tests.tsx": [ +51 +], +"eigen:src/app/Scenes/Fair/Fair.tests.tsx": [ +53, +204, +218, +228, +242, +246, +253, +257, +275, +293 +], +"eigen:src/app/Scenes/Fair/FairAllFollowedArtists.tests.tsx": [ +54 +], +"eigen:src/app/Scenes/Fair/FairEmptyState.tests.tsx": [ +28, +34 +], +"eigen:src/app/Scenes/Fair/FairFollowedArtistsRail.tests.tsx": [ +53 +], +"eigen:src/app/Scenes/Fair/FairHeader.tests.tsx": [ +48 +], +"eigen:src/app/Scenes/Feature/Feature.tests.tsx": [ +22 +], +"eigen:src/app/Scenes/Home/Components/AuctionResultsRail.tests.tsx": [ +48, +64, +75 +], +"eigen:src/app/Scenes/Home/Components/HomeHero.tests.tsx": [ +42, +63, +83 +], +"eigen:src/app/Scenes/Home/Components/ShowsRail.tests.tsx": [ +77, +93 +], +"eigen:src/app/Scenes/Home/Components/Trove.tests.tsx": [ +42, +62 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/Composer.tests.tsx": [ +154, +184, +225, +266, +305, +346 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/ConversationCTA.tests.tsx": [ +75, +105, +245 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/Conversations.tests.tsx": [ +43 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/InquiryMakeOfferButton.tests.tsx": [ +75, +100 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/InquiryMakeOfferButton.tsx": [ +96, +116 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/InquiryPurchaseButton.tests.tsx": [ +74, +104 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/ItemInfo.tests.tsx": [ +66 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/MakeOfferModal.tests.tsx": [ +173, +186, +188 +], +"eigen:src/app/Scenes/Inbox/Components/Conversations/OpenInquiryModalButton.tests.tsx": [ +82, +94, +113, +143, +156, +176, +203, +212 +], +"eigen:src/app/Scenes/Map/GlobalMap.tsx": [ +641 +], +"eigen:src/app/Scenes/MyAccount/MyAccount.tests.tsx": [ +70, +90, +108, +112, +145 +], +"eigen:src/app/Scenes/MyBids/MyBids.tests.tsx": [ +61 +], +"eigen:src/app/Scenes/MyBids/SaleCard.tests.tsx": [ +47 +], +"eigen:src/app/Scenes/MyBids/SaleInfo.tests.tsx": [ +37, +41, +44, +47, +53, +61, +70, +85, +94, +113, +139, +147, +156, +168, +180, +199 +], +"eigen:src/app/Scenes/MyCollection/MyCollection.tests.tsx": [ +74, +141 +], +"eigen:src/app/Scenes/MyCollection/Screens/Artwork/Components/ArtworkInsights/RequestForPriceEstimate/RequestForPriceEstimateScreen.tests.tsx": [ +39 +], +"eigen:src/app/Scenes/MyCollection/Screens/Artwork/Components/MyCollectionArtworkHeader.tsx": [ +58 +], +"eigen:src/app/Scenes/MyCollection/Screens/Artwork/Components/MyCollectionWhySell.tests.tsx": [ +58, +74, +93, +117, +144, +172, +231, +249, +274, +301 +], +"eigen:src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tests.tsx": [ +32, +53 +], +"eigen:src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtworkInsights.tests.tsx": [ +106, +118, +131 +], +"eigen:src/app/Scenes/MyCollection/Screens/ArtworkForm/Components/Rarity.tests.tsx": [ +15 +], +"eigen:src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx": [ +53, +72, +190, +234, +240, +289, +330, +443, +447, +511, +515 +], +"eigen:src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tsx": [ +195 +], +"eigen:src/app/Scenes/MyCollection/Screens/ArtworkForm/Screens/MyCollectionArtworkFormMain.tsx": [ +44, +48 +], +"eigen:src/app/Scenes/MyCollection/Screens/ArtworkList/MyCollectionArtworkGridItem.tests.tsx": [ +51, +114, +137 +], +"eigen:src/app/Scenes/MyCollection/Screens/Insights/MyCollectionInsights.tests.tsx": [ +31, +46, +110, +119 +], +"eigen:src/app/Scenes/MyCollection/utils/localArtworkSortAndFilter.ts": [ +31, +45, +59, +74, +86, +93, +101, +109, +124, +148, +156, +185, +211, +234, +257 +], +"eigen:src/app/Scenes/MyProfile/MyProfileHeaderMyCollectionAndSavedWorks.tests.tsx": [ +89, +106, +126, +153, +158, +176 +], +"eigen:src/app/Scenes/MyProfile/MyProfilePayment.tsx": [ +66, +121 +], +"eigen:src/app/Scenes/MyProfile/__tests__/MyProfileEditForm.tests.tsx": [ +56, +69, +132, +141 +], +"eigen:src/app/Scenes/NewWorksForYou/NewWorksForYou.tests.tsx": [ +40 +], +"eigen:src/app/Scenes/Onboarding/OnboardingCreateAccount/OnboardingSocialPick.tests.tsx": [ +21, +31, +38, +56, +67, +75 +], +"eigen:src/app/Scenes/Onboarding/OnboardingPersonalization/OnboardingPersonalization.tests.tsx": [ +70 +], +"eigen:src/app/Scenes/Onboarding/OnboardingSocialLink.tests.tsx": [ +129 +], +"eigen:src/app/Scenes/Onboarding/OnboardingWelcome.tsx": [ +59, +72 +], +"eigen:src/app/Scenes/OrderHistory/OrderDetails/OrderDetails.tests.tsx": [ +57 +], +"eigen:src/app/Scenes/OrderHistory/OrderDetails/OrderDetailsHeader.tests.tsx": [ +57, +87, +167 +], +"eigen:src/app/Scenes/OrderHistory/OrderDetails/OrderDetailsPayment.tests.tsx": [ +45 +], +"eigen:src/app/Scenes/OrderHistory/OrderDetails/TrackOrderSection.tests.tsx": [ +87, +106, +127, +145, +180, +204 +], +"eigen:src/app/Scenes/OrderHistory/OrderHistory.tests.tsx": [ +65 +], +"eigen:src/app/Scenes/OrderHistory/OrderHistoryRow.tests.tsx": [ +68, +87, +98, +128, +139, +147, +156, +165, +187, +195, +225, +233, +254, +275, +296, +317 +], +"eigen:src/app/Scenes/OrderHistory/SummarySection.tests.tsx": [ +103, +123 +], +"eigen:src/app/Scenes/Partner/Components/PartnerArtwork.tests.tsx": [ +26 +], +"eigen:src/app/Scenes/Partner/Components/PartnerShows.tsx": [ +143 +], +"eigen:src/app/Scenes/Sale/Sale.tests.tsx": [ +40, +67, +95, +119, +138, +157, +175, +195, +215 +], +"eigen:src/app/Scenes/Sale/SaleHeader.tests.tsx": [ +52, +75, +104, +130, +159, +163, +171, +190, +230, +384, +390 +], +"eigen:src/app/Scenes/SaleInfo/SaleInfo.tests.tsx": [ +46, +58, +73, +85, +97, +127 +], +"eigen:src/app/Scenes/Sales/Components/SaleListItem.tests.tsx": [ +18, +23, +33, +38 +], +"eigen:src/app/Scenes/Sales/Sales.tests.tsx": [ +48 +], +"eigen:src/app/Scenes/SavedAddresses/SavedAddresses.tests.tsx": [ +41, +58, +115, +135, +194 +], +"eigen:src/app/Scenes/SavedAddresses/SavedAddresses.tsx": [ +82 +], +"eigen:src/app/Scenes/SavedAddresses/SavedAddressesForm.tests.tsx": [ +44, +65 +], +"eigen:src/app/Scenes/SavedSearchAlert/CreateSavedSearchAlert.tests.tsx": [ +166, +184, +211, +226 +], +"eigen:src/app/Scenes/SavedSearchAlert/EditSavedSearchAlert.tests.tsx": [ +61, +148, +151, +152, +170, +180, +181, +191, +200, +201, +211, +220, +221 +], +"eigen:src/app/Scenes/SavedSearchAlert/SavedSearchAlertForm.tests.tsx": [ +91, +116, +152, +171, +197, +212, +249, +651, +658, +663, +674, +681, +686, +692, +699, +715, +722, +727, +735, +744, +751, +758, +767, +774 +], +"eigen:src/app/Scenes/Search/Search.tests.tsx": [ +221, +225, +258, +281, +311, +345, +369, +404, +453, +508, +526, +571, +641, +660 +], +"eigen:src/app/Scenes/Search/Search.tsx": [ +75 +], +"eigen:src/app/Scenes/Search/components/SearchInput.tsx": [ +43 +], +"eigen:src/app/Scenes/SellWithArtsy/Components/ArtistList.tests.tsx": [ +49, +72 +], +"eigen:src/app/Scenes/SellWithArtsy/Components/RecentlySold.tests.tsx": [ +49, +67, +98, +121 +], +"eigen:src/app/Scenes/SellWithArtsy/SubmitArtwork/ContactInformation/ContactInformation.tests.tsx": [ +44, +86, +115, +140, +165, +209 +], +"eigen:src/app/Scenes/SellWithArtsy/SubmitArtwork/SubmitArtwork.tsx": [ +92, +98, +128 +], +"eigen:src/app/Scenes/SellWithArtsy/SubmitArtwork/UploadPhotos/UploadPhotosForm.tsx": [ +46 +], +"eigen:src/app/Scenes/Show/Show.tests.tsx": [ +46, +107, +111, +118, +122, +140, +158 +], +"eigen:src/app/Scenes/Show/ShowArtworksEmptyState.tests.tsx": [ +43, +52, +62, +73, +83 +], +"eigen:src/app/Scenes/Show/ShowContextCard.tests.tsx": [ +48, +63, +84, +91, +106, +111, +117, +138, +160, +168, +185, +190, +196 +], +"eigen:src/app/Scenes/Show/ShowHours.tests.tsx": [ +43 +], +"eigen:src/app/Scenes/Show/ShowLocation.tests.tsx": [ +67 +], +"eigen:src/app/Scenes/Show/ShowMoreInfo.tests.tsx": [ +45 +], +"eigen:src/app/Scenes/Show/ShowViewingRoom.tests.tsx": [ +45 +], +"eigen:src/app/Scenes/VanityURL/VanityURLEntity.tests.tsx": [ +53, +91, +116, +140 +], +"eigen:src/app/Scenes/ViewingRoom/Components/ViewingRoomArtworkRail.tests.tsx": [ +50, +72 +], +"eigen:src/app/Scenes/ViewingRoom/Components/ViewingRoomHeader.tests.tsx": [ +36, +47, +58, +68, +78, +88, +98, +115 +], +"eigen:src/app/Scenes/ViewingRoom/Components/ViewingRoomViewWorksButton.tests.tsx": [ +38 +], +"eigen:src/app/Scenes/ViewingRoom/Components/ViewingRoomsListFeatured.tests.tsx": [ +39 +], +"eigen:src/app/Scenes/ViewingRoom/ViewingRoom.tests.tsx": [ +41, +58, +75, +98, +120, +157, +174 +], +"eigen:src/app/Scenes/ViewingRoom/ViewingRoomArtwork.tests.tsx": [ +33 +], +"eigen:src/app/Scenes/ViewingRoom/ViewingRoomArtworks.tsx": [ +45 +], +"eigen:src/app/Scenes/ViewingRoom/ViewingRoomsList.tests.tsx": [ +28 +], +"eigen:src/app/relay/middlewares/cacheMiddleware.tests.ts": [ +48, +68, +95, +117 +], +"eigen:src/app/relay/middlewares/cacheMiddleware.ts": [ +26 +], +"eigen:src/app/relay/middlewares/checkAuthenticationMiddleware.ts": [ +32 +], +"eigen:src/app/relay/middlewares/errorMiddleware.tests.ts": [ +21, +23, +52, +54, +79, +81, +88, +106, +137, +139, +146, +160 +], +"eigen:src/app/relay/middlewares/metaphysicsMiddleware.tests.ts": [ +37, +62 +], +"eigen:src/app/relay/middlewares/metaphysicsMiddleware.ts": [ +17 +], +"eigen:src/app/relay/middlewares/simpleLoggerMiddleware.ts": [ +26 +], +"eigen:src/app/relay/middlewares/timingMiddleware.ts": [ +9 +], +"eigen:src/app/store/AuthModel.tests.ts": [ +106, +341, +353, +364, +370, +378, +389, +395, +401, +418, +425, +433, +468, +494, +500, +517, +524, +532, +567, +589, +616, +620, +634, +657, +660 +], +"eigen:src/app/store/AuthModel.ts": [ +501 +], +"eigen:src/app/store/GlobalStore.tsx": [ +35, +47 +], +"eigen:src/app/store/PropsStore.tests.ts": [ +8, +16, +37, +50 +], +"eigen:src/app/store/config/EchoModel.tests.tsx": [ +92, +107, +124, +142, +160 +], +"eigen:src/app/store/config/features.tests.ts": [ +10 +], +"eigen:src/app/store/migration.tests.ts": [ +110, +126 +], +"eigen:src/app/store/persistence.ts": [ +92 +], +"eigen:src/app/tests/renderRelayTree.tests.tsx": [ +46 +], +"eigen:src/app/tests/renderUntil.tests.tsx": [ +39, +51 +], +"eigen:src/app/tests/setupTestWrapper.tsx": [ +31, +44, +68, +81 +], +"eigen:src/app/utils/AdminMenu.tsx": [ +442 +], +"eigen:src/app/utils/ExecutionQueue.tests.ts": [ +15 +], +"eigen:src/app/utils/PushNotification.tests.ts": [ +184, +187, +196, +207, +214 +], +"eigen:src/app/utils/hardware.tests.ts": [ +37 +], +"eigen:src/app/utils/requestPhotos.tests.ts": [ +15, +28 +], +"eigen:src/app/utils/sendEmail.tests.ts": [ +34, +42, +52 +], +"eigen:src/app/utils/useAlgoliaClient.ts": [ +14, +15, +19 +], +"eigen:src/app/utils/useGlobalState.ts": [ +12, +32 +], +"eigen:src/app/utils/useScreenReaderTracking.ts": [ +12 +], +"eigen:src/app/utils/useWebViewEvent.ts": [ +39 +], +"eigen:src/palette/elements/Autocomplete/AutoSuggest.tests.ts": [ +59, +70, +81 +], +"eigen:src/palette/elements/CollapsibleMenuItem/CollapsibleMenuItem.tsx": [ +56 +], +"eigen:src/palette/elements/Input/Input.tsx": [ +180 +], +"eigen:src/palette/elements/PhotoRow/PhotoRow.tests.tsx": [ +45 +], +"eigen:src/palette/elements/Select/Select.tsx": [ +281, +288 +], +"eigen:src/palette/elements/Select/SelectV2.tsx": [ +239, +246, +312 +], +"eigen:src/palette/elements/Tabs/ContentTabs.tsx": [ +22 +], +"eigen:src/palette/elements/Tabs/NavigationalTabs.tsx": [ +37, +47 +], +"eigen:src/palette/elements/Tabs/StepTabs.tsx": [ +35 +], +"eigen:src/palette/organisms/screenStructure/Screen.tsx": [ +224 +], +"eigen:src/shared/utils/Wrap.tests.tsx": [ +32, +42, +59 +] +} diff --git a/its/ruling/src/test/expected/jsts/es5-shim/javascript-S2004.json b/its/ruling/src/test/expected/jsts/es5-shim/javascript-S2004.json new file mode 100644 index 00000000000..a8747fe02d7 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/es5-shim/javascript-S2004.json @@ -0,0 +1,5 @@ +{ +"es5-shim:es5-shim.js": [ +1865 +] +} diff --git a/its/ruling/src/test/expected/jsts/expressionist.js/javascript-S2004.json b/its/ruling/src/test/expected/jsts/expressionist.js/javascript-S2004.json new file mode 100644 index 00000000000..5a31b53fb99 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/expressionist.js/javascript-S2004.json @@ -0,0 +1,53 @@ +{ +"expressionist.js:test/parser.spec.js": [ +125, +129, +133, +143, +147, +151, +155, +159, +163, +167, +171, +175, +179, +183, +187, +191, +195, +225, +231, +286, +297, +306, +319, +333, +346, +394, +395, +396, +397, +398, +399, +524, +534, +543, +613, +645, +685, +693, +748, +748, +766, +797, +801, +813, +821, +824 +], +"expressionist.js:test/watch_parser.spec.js": [ +160 +] +} diff --git a/its/ruling/src/test/expected/jsts/fireact/javascript-S2004.json b/its/ruling/src/test/expected/jsts/fireact/javascript-S2004.json new file mode 100644 index 00000000000..0a144ac8fb7 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/fireact/javascript-S2004.json @@ -0,0 +1,45 @@ +{ +"fireact:src/components/FirebaseAuth/index.js": [ +19 +], +"fireact:src/components/templates/AccountTemplate/index.js": [ +44 +], +"fireact:src/pages/auth/Home/index.js": [ +26 +], +"fireact:src/pages/auth/accounts/PaymentList/index.js": [ +32, +38, +57 +], +"fireact:src/pages/auth/accounts/Plans/index.js": [ +77, +90 +], +"fireact:src/pages/auth/accounts/UserList/index.js": [ +50 +], +"fireact:src/pages/auth/accounts/images/ImageList.js": [ +39, +96, +134 +], +"fireact:src/pages/auth/user/UpdateEmail/index.js": [ +57, +75 +], +"fireact:src/pages/auth/user/UpdatePassword/index.js": [ +73, +81 +], +"fireact:src/pages/auth/user/ViewLogs/index.js": [ +22, +29, +49 +], +"fireact:src/serviceWorker.js": [ +66, +115 +] +} diff --git a/its/ruling/src/test/expected/jsts/http/javascript-S2004.json b/its/ruling/src/test/expected/jsts/http/javascript-S2004.json new file mode 100644 index 00000000000..3f9ab45f808 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/http/javascript-S2004.json @@ -0,0 +1,46 @@ +{ +"http:test/ConnectionMock.spec.js": [ +40, +48, +57, +67, +81, +94, +112, +189, +197 +], +"http:test/Http.spec.js": [ +39, +43, +47, +51, +129, +145, +204, +207, +238, +253, +276, +302, +308, +331, +353 +], +"http:test/JSONPConnection.spec.js": [ +38 +], +"http:test/XHRConnection.spec.js": [ +23, +29, +33, +48, +52, +69, +151, +195 +], +"http:test/matchers.js": [ +10 +] +} diff --git a/its/ruling/src/test/expected/jsts/jira-clone/javascript-S2004.json b/its/ruling/src/test/expected/jsts/jira-clone/javascript-S2004.json new file mode 100644 index 00000000000..a52bbfc9ea3 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/jira-clone/javascript-S2004.json @@ -0,0 +1,22 @@ +{ +"jira-clone:client/cypress/integration/issueDetails.spec.js": [ +21, +55, +84 +], +"jira-clone:client/src/App/Toast/index.jsx": [ +15, +18, +30 +], +"jira-clone:client/src/shared/components/Form/index.jsx": [ +48 +], +"jira-clone:client/src/shared/hooks/api/mutation.js": [ +19, +23 +], +"jira-clone:client/src/shared/hooks/onOutsideClick.js": [ +21 +] +} diff --git a/its/ruling/src/test/expected/jsts/jquery/javascript-S2004.json b/its/ruling/src/test/expected/jsts/jquery/javascript-S2004.json new file mode 100644 index 00000000000..985abb845ca --- /dev/null +++ b/its/ruling/src/test/expected/jsts/jquery/javascript-S2004.json @@ -0,0 +1,26 @@ +{ +"jquery:build/tasks/build.js": [ +82, +307, +314 +], +"jquery:build/tasks/dist.js": [ +56 +], +"jquery:src/ajax/xhr.js": [ +60 +], +"jquery:src/callbacks.js": [ +124 +], +"jquery:src/deferred.js": [ +75, +105 +], +"jquery:src/dimensions.js": [ +17 +], +"jquery:src/selector.js": [ +389 +] +} diff --git a/its/ruling/src/test/expected/jsts/jshint/javascript-S2004.json b/its/ruling/src/test/expected/jsts/jshint/javascript-S2004.json new file mode 100644 index 00000000000..8cdf5f377b5 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/jshint/javascript-S2004.json @@ -0,0 +1,14 @@ +{ +"jshint:src/jshint.js": [ +4762, +6050, +6060, +6077, +6294, +6386, +6415 +], +"jshint:src/lex.js": [ +471 +] +} diff --git a/its/ruling/src/test/expected/jsts/knockout/javascript-S2004.json b/its/ruling/src/test/expected/jsts/knockout/javascript-S2004.json new file mode 100644 index 00000000000..455e33d4031 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/knockout/javascript-S2004.json @@ -0,0 +1,40 @@ +{ +"knockout:Gruntfile.js": [ +61 +], +"knockout:src/binding/bindingAttributeSyntax.js": [ +278, +367, +445, +504, +519 +], +"knockout:src/binding/defaultBindings/ifIfnotWith.js": [ +18 +], +"knockout:src/binding/editDetection/arrayToDomNodeChildren.js": [ +79 +], +"knockout:src/binding/expressionRewriting.js": [ +118 +], +"knockout:src/components/componentBinding.js": [ +45 +], +"knockout:src/components/customElements.js": [ +61, +64 +], +"knockout:src/components/defaultLoader.js": [ +81, +92 +], +"knockout:src/components/loaderRegistry.js": [ +60, +75 +], +"knockout:src/templating/templating.js": [ +183, +232 +] +} diff --git a/its/ruling/src/test/expected/jsts/moose/typescript-S2004.json b/its/ruling/src/test/expected/jsts/moose/typescript-S2004.json new file mode 100644 index 00000000000..5e05e9bfcae --- /dev/null +++ b/its/ruling/src/test/expected/jsts/moose/typescript-S2004.json @@ -0,0 +1,28 @@ +{ +"moose:main/utils/opensubtitle-hash.ts": [ +37 +], +"moose:renderer/components/Cast/Cast.tsx": [ +53 +], +"moose:renderer/components/CastControl/CastControl.tsx": [ +73 +], +"moose:renderer/components/Container/Container.tsx": [ +73, +90, +139 +], +"moose:renderer/components/Downloads/Downloads.tsx": [ +55, +109, +125, +129 +], +"moose:renderer/components/FilesList/FilesList.tsx": [ +169 +], +"moose:renderer/components/Toast/Toast.tsx": [ +20 +] +} diff --git a/its/ruling/src/test/expected/jsts/mootools-core/javascript-S2004.json b/its/ruling/src/test/expected/jsts/mootools-core/javascript-S2004.json new file mode 100644 index 00000000000..e2646996f51 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/mootools-core/javascript-S2004.json @@ -0,0 +1,18 @@ +{ +"mootools-core:Grunt/plugins/eslint/rules/mootools-indent.js": [ +150, +166 +], +"mootools-core:Grunt/plugins/eslint/rules/mootools-whitespace.js": [ +16 +], +"mootools-core:Source/Element/Element.js": [ +295, +867, +872 +], +"mootools-core:Source/Fx/Fx.CSS.js": [ +111, +115 +] +} diff --git a/its/ruling/src/test/expected/jsts/ocanvas/javascript-S2004.json b/its/ruling/src/test/expected/jsts/ocanvas/javascript-S2004.json new file mode 100644 index 00000000000..13b7d93c0f2 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/ocanvas/javascript-S2004.json @@ -0,0 +1,82 @@ +{ +"ocanvas:src/animation.js": [ +62, +265, +293, +339, +374, +377, +387, +401, +406 +], +"ocanvas:src/background.js": [ +68 +], +"ocanvas:src/displayobject.js": [ +91, +172, +608, +640, +662, +826, +928, +972 +], +"ocanvas:src/displayobjects/image.js": [ +38, +140 +], +"ocanvas:src/displayobjects/line.js": [ +44, +45, +46, +50, +64, +65, +66, +70 +], +"ocanvas:src/displayobjects/sprite.js": [ +52, +148, +182 +], +"ocanvas:src/displayobjects/text.js": [ +207 +], +"ocanvas:src/events.js": [ +347, +353 +], +"ocanvas:src/keyboard.js": [ +17, +18, +19, +65 +], +"ocanvas:src/mouse.js": [ +55, +63, +79 +], +"ocanvas:src/scenes.js": [ +35, +47, +62, +83 +], +"ocanvas:src/timeline.js": [ +13, +46 +], +"ocanvas:src/touch.js": [ +61, +66, +82, +90 +], +"ocanvas:src/utils.js": [ +107 +] +} diff --git a/its/ruling/src/test/expected/jsts/p5.js/javascript-S2004.json b/its/ruling/src/test/expected/jsts/p5.js/javascript-S2004.json new file mode 100644 index 00000000000..0d5b8b99d43 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/p5.js/javascript-S2004.json @@ -0,0 +1,366 @@ +{ +"p5.js:docs/documented-method.js": [ +46 +], +"p5.js:docs/preprocessor.js": [ +128 +], +"p5.js:docs/yuidoc-p5-theme/assets/js/reference.js": [ +13, +25, +43, +249, +251, +261, +289, +345, +491, +502, +514, +524, +530, +539, +559, +564, +591, +594, +597, +606, +613, +629, +637, +641, +649, +653, +658, +674, +681, +684, +687, +693, +701, +706, +718, +734, +737, +740, +746, +751, +754, +758, +784, +801, +820, +830, +834, +852, +877, +881, +889, +898, +904, +914, +941, +944, +965, +1011, +1028, +1034, +1049, +1059, +1066, +1076, +1086, +1089, +1092, +1115, +1118, +1121, +1124, +1129, +1138, +1208, +1215, +1230, +1247, +1250, +1253, +1264, +1278, +1288, +1305, +1320, +1353, +1373, +1401, +1405, +1409, +1412, +1419, +1422, +1441, +1453, +1464, +1467, +1470, +1473, +1476, +1479, +1483, +1486, +1489, +1492, +1495, +1503, +1506, +1511, +1524, +1531, +1548, +1551, +1557, +1574, +1577, +1580, +1584, +1635, +1638, +1649, +1652, +1657, +1660, +1665, +1672, +1683, +1688, +1707, +1710, +1714, +1717, +1725, +1728, +1731, +1734, +1737, +1741, +1744, +1763, +1775, +1783, +1790, +1793, +1796, +1799, +1810, +1813, +1816, +1822, +1829, +1832, +1842, +1848, +1891, +1897, +1902, +1906, +1909, +1913, +1917, +1921, +1927, +1939, +1948, +1952, +1957, +1962, +1965, +1968, +1974, +1978, +1986, +2000, +2011, +2019, +2022, +2025, +2034, +2037, +2045, +2070, +2082, +2096, +2118, +2127, +2136, +2152, +2163, +2170, +2244, +2248, +2260, +2272, +2340, +2728, +2746, +2755, +2827, +2988, +3117, +3153, +3457, +3493, +3902, +3915, +3931, +4195, +4229, +4349, +4424, +4597, +4647, +4694, +4730, +4774, +4786, +4796, +4885, +4900, +4908, +4935 +], +"p5.js:docs/yuidoc-p5-theme/assets/js/render.js": [ +128, +139, +188, +209, +221, +224, +240, +251 +], +"p5.js:lib/addons/p5.sound.js": [ +94, +112, +118, +124, +156, +167, +177, +311, +342, +350, +686, +837, +844, +858, +861, +947, +969, +1088, +1536, +1713, +1755, +1803, +1827, +1832, +1873, +1886, +1899, +2779, +2850, +2871, +2913, +3165, +3354, +3548, +3551, +3558, +3561, +4293, +4319, +4322, +4481, +4668, +4675, +6067, +7554, +7564, +7579, +7691, +7795, +7843, +7878, +7925, +7942, +8109, +8128, +8131, +8139, +8142, +8161, +8186, +8200, +8228, +8248, +8297, +10045, +10073, +10109, +10387, +10400, +10635, +10684, +10698, +10833, +10846, +10901, +11003, +11500, +11550, +11556, +11627, +11771, +11870, +12553, +12683, +12738 +], +"p5.js:src/core/error_helpers.js": [ +300 +], +"p5.js:src/image/loading_displaying.js": [ +93 +], +"p5.js:src/webgl/text.js": [ +211, +283, +301, +319, +340 +], +"p5.js:tasks/release/release-bower.js": [ +26, +42, +60 +], +"p5.js:tasks/release/release-docs.js": [ +25, +39, +57 +], +"p5.js:tasks/release/release-github.js": [ +76, +94 +], +"p5.js:tasks/test/mocha-chrome.js": [ +53, +63 +], +"p5.js:test/test-reference.html": [ +129, +137, +185, +217, +221 +] +} diff --git a/its/ruling/src/test/expected/jsts/paper.js/javascript-S2004.json b/its/ruling/src/test/expected/jsts/paper.js/javascript-S2004.json new file mode 100644 index 00000000000..85565f1fb31 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/paper.js/javascript-S2004.json @@ -0,0 +1,19 @@ +{ +"paper.js:src/core/PaperScript.js": [ +308, +319 +], +"paper.js:src/node/extend.js": [ +117 +], +"paper.js:src/path/PathItem.Boolean.js": [ +916 +], +"paper.js:src/style/Color.js": [ +278, +294, +301, +308, +315 +] +} diff --git a/its/ruling/src/test/expected/jsts/postgraphql/javascript-S2004.json b/its/ruling/src/test/expected/jsts/postgraphql/javascript-S2004.json new file mode 100644 index 00000000000..ed27845bed8 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/postgraphql/javascript-S2004.json @@ -0,0 +1,17 @@ +{ +"postgraphql:src/graphql/schema/connection/__tests__/createConnectionGqlField-test.js": [ +14 +], +"postgraphql:src/postgraphql/__tests__/postgraphqlIntegrationMutations-test.js": [ +40 +], +"postgraphql:src/postgraphql/__tests__/postgraphqlIntegrationQueries-test.js": [ +57 +], +"postgraphql:src/postgraphql/http/createPostGraphQLHttpRequestHandler.js": [ +302 +], +"postgraphql:src/postgres/inventory/collection/__tests__/PgCollection-test.js": [ +380 +] +} diff --git a/its/ruling/src/test/expected/jsts/postgraphql/typescript-S2004.json b/its/ruling/src/test/expected/jsts/postgraphql/typescript-S2004.json new file mode 100644 index 00000000000..1b88745e50e --- /dev/null +++ b/its/ruling/src/test/expected/jsts/postgraphql/typescript-S2004.json @@ -0,0 +1,39 @@ +{ +"postgraphql:src/__tests__/utils/createTestInParallel.ts": [ +25 +], +"postgraphql:src/graphql/schema/collection/createCollectionGqlType.ts": [ +53, +96 +], +"postgraphql:src/graphql/schema/collection/createCollectionKeyInputHelpers.ts": [ +54 +], +"postgraphql:src/graphql/schema/connection/createConnectionGqlField.ts": [ +160, +166 +], +"postgraphql:src/graphql/schema/type/getGqlInputType.ts": [ +77, +78, +122, +158, +159 +], +"postgraphql:src/graphql/schema/type/getGqlOutputType.ts": [ +91, +164 +], +"postgraphql:src/postgraphql/watch/watchPgSchemas.ts": [ +70 +], +"postgraphql:src/postgres/inventory/collection/PgCollection.ts": [ +141, +164 +], +"postgraphql:src/postgres/inventory/collection/PgCollectionKey.ts": [ +179, +194, +199 +] +} diff --git a/its/ruling/src/test/expected/jsts/prototype/javascript-S2004.json b/its/ruling/src/test/expected/jsts/prototype/javascript-S2004.json new file mode 100644 index 00000000000..7268093d575 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/prototype/javascript-S2004.json @@ -0,0 +1,7 @@ +{ +"prototype:src/prototype/lang/class.js": [ +148, +160, +164 +] +} diff --git a/its/ruling/src/test/expected/jsts/qunit/javascript-S2004.json b/its/ruling/src/test/expected/jsts/qunit/javascript-S2004.json new file mode 100644 index 00000000000..d2a7dbbd44a --- /dev/null +++ b/its/ruling/src/test/expected/jsts/qunit/javascript-S2004.json @@ -0,0 +1,16 @@ +{ +"qunit:build/tasks/test-on-node.js": [ +9, +17 +], +"qunit:reporter/html.js": [ +435 +], +"qunit:src/equiv.js": [ +167, +225 +], +"qunit:src/test.js": [ +359 +] +} diff --git a/its/ruling/src/test/expected/jsts/react-cloud-music/javascript-S2004.json b/its/ruling/src/test/expected/jsts/react-cloud-music/javascript-S2004.json new file mode 100644 index 00000000000..70065908091 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/react-cloud-music/javascript-S2004.json @@ -0,0 +1,31 @@ +{ +"react-cloud-music:src/application/Rank/index.jsx": [ +49 +], +"react-cloud-music:src/application/Search/index.jsx": [ +54, +98, +122, +152 +], +"react-cloud-music:src/application/Singers/index.jsx": [ +64 +], +"react-cloud-music:src/application/User/Login/PhoneForm/step-two/index.jsx": [ +22 +], +"react-cloud-music:src/baseUI/music-note/index.jsx": [ +46 +], +"react-cloud-music:src/baseUI/toast/index.jsx": [ +44 +], +"react-cloud-music:src/serviceWorker.js": [ +66, +113 +], +"react-cloud-music:ts-music/src/serviceWorker.js": [ +66, +115 +] +} diff --git a/its/ruling/src/test/expected/jsts/reddit-mobile/javascript-S2004.json b/its/ruling/src/test/expected/jsts/reddit-mobile/javascript-S2004.json new file mode 100644 index 00000000000..0f2f0e84615 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/reddit-mobile/javascript-S2004.json @@ -0,0 +1,23 @@ +{ +"reddit-mobile:assets/js/client.es6.js": [ +162 +], +"reddit-mobile:buildTasks/icons.js": [ +25, +45 +], +"reddit-mobile:buildTasks/js.js": [ +117, +135 +], +"reddit-mobile:src/server/console.es6.js": [ +62 +], +"reddit-mobile:src/server/oauth.es6.js": [ +83, +132, +172, +403, +486 +] +} diff --git a/its/ruling/src/test/expected/jsts/redux/javascript-S2004.json b/its/ruling/src/test/expected/jsts/redux/javascript-S2004.json new file mode 100644 index 00000000000..538af2e718f --- /dev/null +++ b/its/ruling/src/test/expected/jsts/redux/javascript-S2004.json @@ -0,0 +1,69 @@ +{ +"redux:examples/real-world/middleware/api.js": [ +100, +104, +114, +118 +], +"redux:examples/todomvc/test/components/Footer.spec.js": [ +62 +], +"redux:examples/todomvc/test/components/MainSection.spec.js": [ +51, +59, +72, +81, +90, +99, +106, +123, +134 +], +"redux:src/utils/applyMiddleware.js": [ +27, +29 +], +"redux:test/createStore.spec.js": [ +32, +311 +], +"redux:test/helpers/actionCreators.js": [ +8 +], +"redux:test/utils/applyMiddleware.spec.js": [ +10, +34 +], +"redux:test/utils/combineReducers.spec.js": [ +9, +11, +26, +36, +53, +58, +63, +71, +82, +89, +93, +102, +117, +120, +123, +134, +137, +145, +156, +170, +188, +191 +], +"redux:test/utils/compose.spec.js": [ +7, +8, +15, +16, +17, +18 +] +} diff --git a/its/ruling/src/test/expected/jsts/router/javascript-S2004.json b/its/ruling/src/test/expected/jsts/router/javascript-S2004.json new file mode 100644 index 00000000000..9e208357bc8 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/router/javascript-S2004.json @@ -0,0 +1,31 @@ +{ +"router:examples/hello/jsonp.js": [ +5 +], +"router:examples/http.js": [ +8 +], +"router:src/router.js": [ +180 +], +"router:third_party/brick/brick-1.0.1.byob.js": [ +150, +778, +784, +945, +1111, +1159, +1169, +1352, +1363, +1381, +1420, +1514, +1662, +2941, +3176, +3452, +3561, +3851 +] +} diff --git a/its/ruling/src/test/expected/jsts/rxjs/javascript-S2004.json b/its/ruling/src/test/expected/jsts/rxjs/javascript-S2004.json new file mode 100644 index 00000000000..3799d59dfdc --- /dev/null +++ b/its/ruling/src/test/expected/jsts/rxjs/javascript-S2004.json @@ -0,0 +1,5 @@ +{ +"rxjs:doc/scripts/theme-toggler.js": [ +16 +] +} diff --git a/its/ruling/src/test/expected/jsts/searchkit/javascript-S2004.json b/its/ruling/src/test/expected/jsts/searchkit/javascript-S2004.json new file mode 100644 index 00000000000..cfbfc6014f9 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/searchkit/javascript-S2004.json @@ -0,0 +1,9 @@ +{ +"searchkit:docs/src/pages/index.js": [ +102, +192 +], +"searchkit:examples/next/components/geosearch-examples/Input.jsx": [ +35 +] +} diff --git a/its/ruling/src/test/expected/jsts/searchkit/typescript-S2004.json b/its/ruling/src/test/expected/jsts/searchkit/typescript-S2004.json new file mode 100644 index 00000000000..2d95fbf895c --- /dev/null +++ b/its/ruling/src/test/expected/jsts/searchkit/typescript-S2004.json @@ -0,0 +1,74 @@ +{ +"searchkit:packages/searchkit-client/src/__tests__/withSearchkitRouting.test.tsx": [ +182, +183, +186, +188, +191, +194 +], +"searchkit:packages/searchkit-client/src/withSearchkitRouting.tsx": [ +103, +118 +], +"searchkit:packages/searchkit-schema/tests/HitsResolver.test.ts": [ +60, +106, +138, +195, +216, +288, +295 +], +"searchkit:packages/searchkit-schema/tests/Pagination.test.ts": [ +56, +73, +98, +125 +], +"searchkit:packages/searchkit-schema/tests/Query.test.ts": [ +70 +], +"searchkit:packages/searchkit-schema/tests/SummaryResolver.test.ts": [ +112 +], +"searchkit:packages/searchkit-schema/tests/VisibleWhen.test.ts": [ +95, +178, +325, +388 +], +"searchkit:packages/searchkit-schema/tests/facets/FacetResolver.test.ts": [ +59, +130, +177, +238 +], +"searchkit:packages/searchkit-schema/tests/facets/FacetsResolver.test.ts": [ +68, +167 +], +"searchkit:packages/searchkit-schema/tests/facets/HierarchicalMenuFacet.test.ts": [ +75, +174, +332 +], +"searchkit:packages/searchkit-schema/tests/facets/RangeFilters.test.ts": [ +65, +129 +], +"searchkit:packages/searchkit-schema/tests/filters/GeoFilters.test.ts": [ +82, +190, +278 +], +"searchkit:packages/searchkit-schema/tests/filters/TermFilter.test.ts": [ +60 +], +"searchkit:packages/searchkit-sdk/tests/filters-facets/RangeFacets.test.ts": [ +52, +61, +151, +160 +] +} diff --git a/its/ruling/src/test/expected/jsts/sizzle/javascript-S2004.json b/its/ruling/src/test/expected/jsts/sizzle/javascript-S2004.json new file mode 100644 index 00000000000..7c19641b4ae --- /dev/null +++ b/its/ruling/src/test/expected/jsts/sizzle/javascript-S2004.json @@ -0,0 +1,18 @@ +{ +"sizzle:speed/speed.js": [ +377, +393 +], +"sizzle:src/sizzle.js": [ +559, +690, +703 +], +"sizzle:tasks/dist.js": [ +22, +28 +], +"sizzle:tasks/karma-tests.js": [ +36 +] +} diff --git a/its/ruling/src/test/expected/jsts/snoode/javascript-S2004.json b/its/ruling/src/test/expected/jsts/snoode/javascript-S2004.json new file mode 100644 index 00000000000..74b87c7d5a1 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/snoode/javascript-S2004.json @@ -0,0 +1,19 @@ +{ +"snoode:src/endpoints/v1.es6.js": [ +345, +372, +429, +497, +585, +757, +997, +1154, +1183, +1186 +], +"snoode:test/models/base.js": [ +44, +122, +132 +] +} diff --git a/its/ruling/src/test/expected/jsts/sonar-web/javascript-S2004.json b/its/ruling/src/test/expected/jsts/sonar-web/javascript-S2004.json new file mode 100644 index 00000000000..809a3af4ea7 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/sonar-web/javascript-S2004.json @@ -0,0 +1,197 @@ +{ +"sonar-web:gulp/scripts.js": [ +99 +], +"sonar-web:src/main/js/apps/coding-rules/bulk-change-modal-view.js": [ +53 +], +"sonar-web:src/main/js/apps/issues/filters-view.js": [ +28 +], +"sonar-web:src/main/js/apps/overview/components/domain-bubble-chart.js": [ +39 +], +"sonar-web:src/main/js/apps/overview/components/domain-treemap.js": [ +32 +], +"sonar-web:src/main/js/apps/overview/main/main.js": [ +141 +], +"sonar-web:src/main/js/components/source-viewer/main.js": [ +234 +], +"sonar-web:src/main/js/components/source-viewer/source.js": [ +48 +], +"sonar-web:src/main/js/libs/graphics/pie-chart.js": [ +34, +37, +45 +], +"sonar-web:src/main/js/libs/sortable.js": [ +55 +], +"sonar-web:src/main/js/main/nav/global/search-view.js": [ +172 +], +"sonar-web:src/main/js/widgets/old/pie-chart.js": [ +219, +220, +224, +231 +], +"sonar-web:src/main/js/widgets/old/stack-area.js": [ +63, +137, +141, +182, +187, +193, +216, +230 +], +"sonar-web:src/main/js/widgets/old/tag-cloud.js": [ +22, +25, +32, +35, +38 +], +"sonar-web:src/main/js/widgets/old/timeline.js": [ +61, +73, +107, +119, +123, +129, +145, +188, +189, +194, +203, +227, +237, +291, +332 +], +"sonar-web:src/main/js/widgets/old/treemap.js": [ +283, +293, +323 +], +"sonar-web:test/helpers/test-page.js": [ +13, +17, +19, +28, +32, +34, +43, +47, +49, +58, +65, +67, +77, +84, +86, +108, +117, +126, +136, +145, +154, +163, +175, +199 +], +"sonar-web:test/medium/coding-rules.spec.js": [ +486, +724, +733 +], +"sonar-web:test/medium/issues.spec.js": [ +7, +19, +35, +178 +], +"sonar-web:test/medium/source-viewer.spec.js": [ +9, +32, +51, +72 +], +"sonar-web:test/medium/update-center.spec.js": [ +99 +], +"sonar-web:tests/application-test.js": [ +50, +60 +], +"sonar-web:tests/apps/background-tasks-test.js": [ +71, +94, +100, +106, +112, +118, +129, +135, +141, +147, +153, +164, +170, +176, +198, +202, +206, +210, +214, +218, +222, +226, +230, +234 +], +"sonar-web:tests/apps/overview/helpers/metrics-test.js": [ +20, +28, +37, +47, +55, +64, +72, +85, +89, +93, +97, +104 +], +"sonar-web:tests/apps/overview/helpers/periods-test.js": [ +25, +30, +38, +43, +48 +], +"sonar-web:tests/apps/system-test.js": [ +54 +], +"sonar-web:tests/components/issue-test.js": [ +63, +74, +85, +93, +101, +114, +124, +134, +148, +166 +], +"sonar-web:tests/helpers/measures-test.js": [ +35 +] +} diff --git a/its/ruling/src/test/expected/jsts/templating/javascript-S2004.json b/its/ruling/src/test/expected/jsts/templating/javascript-S2004.json new file mode 100644 index 00000000000..98c97853201 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/templating/javascript-S2004.json @@ -0,0 +1,23 @@ +{ +"templating:test/example/tab.spec.js": [ +64, +74 +], +"templating:test/lib/compiler/compiler.spec.js": [ +115, +161, +187, +234, +262, +299 +], +"templating:test/lib/util/document_ready.spec.js": [ +24, +34, +47 +], +"templating:test/lib/util/tree_array.spec.js": [ +12, +24 +] +} diff --git a/its/ruling/src/test/expected/jsts/underscore/javascript-S2004.json b/its/ruling/src/test/expected/jsts/underscore/javascript-S2004.json new file mode 100644 index 00000000000..e507205b4f6 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/underscore/javascript-S2004.json @@ -0,0 +1,6 @@ +{ +"underscore:underscore.js": [ +441, +1636 +] +} diff --git a/its/ruling/src/test/expected/jsts/vuetify/javascript-S2004.json b/its/ruling/src/test/expected/jsts/vuetify/javascript-S2004.json new file mode 100644 index 00000000000..e335248806c --- /dev/null +++ b/its/ruling/src/test/expected/jsts/vuetify/javascript-S2004.json @@ -0,0 +1,18 @@ +{ +"vuetify:eslint-local-rules.js": [ +44, +82 +], +"vuetify:packages/docs/src/examples/v-calendar/event-click.vue": [ +174 +], +"vuetify:packages/docs/src/examples/v-data-table/server.vue": [ +110 +], +"vuetify:packages/vuetify/build/rollup.config.js": [ +124, +127, +261, +264 +] +} diff --git a/its/ruling/src/test/expected/jsts/vuetify/typescript-S2004.json b/its/ruling/src/test/expected/jsts/vuetify/typescript-S2004.json new file mode 100644 index 00000000000..c996f0a9840 --- /dev/null +++ b/its/ruling/src/test/expected/jsts/vuetify/typescript-S2004.json @@ -0,0 +1,486 @@ +{ +"vuetify:packages/api-generator/src/web-types.ts": [ +40 +], +"vuetify:packages/docs/src/App.vue": [ +112 +], +"vuetify:packages/docs/src/plugins/pwa.ts": [ +40 +], +"vuetify:packages/docs/src/store/team.ts": [ +48 +], +"vuetify:packages/vuetify/cypress/templates/generateStories.tsx": [ +114, +118, +131, +143 +], +"vuetify:packages/vuetify/src/__tests__/framework.spec.ts": [ +38 +], +"vuetify:packages/vuetify/src/components/VAlert/__tests__/VAlert.spec.cy.tsx": [ +23, +34 +], +"vuetify:packages/vuetify/src/components/VAutocomplete/VAutocomplete.tsx": [ +135, +141, +312, +322, +350 +], +"vuetify:packages/vuetify/src/components/VAutocomplete/__tests__/VAutocomplete.spec.cy.tsx": [ +161 +], +"vuetify:packages/vuetify/src/components/VBadge/__tests__/VBadge.spec.cy.tsx": [ +48, +59, +95, +106 +], +"vuetify:packages/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx": [ +121, +128 +], +"vuetify:packages/vuetify/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.cy.tsx": [ +15, +29 +], +"vuetify:packages/vuetify/src/components/VBtn/__tests__/VBtn.spec.cy.tsx": [ +55, +66 +], +"vuetify:packages/vuetify/src/components/VBtnGroup/__tests__/VBtnGroup.spec.cy.tsx": [ +15, +33, +51 +], +"vuetify:packages/vuetify/src/components/VCalendar/mixins/mouse.ts": [ +77 +], +"vuetify:packages/vuetify/src/components/VCalendar/util/__tests__/timestamp.spec.ts": [ +441, +495 +], +"vuetify:packages/vuetify/src/components/VCarousel/VCarousel.tsx": [ +125 +], +"vuetify:packages/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx": [ +68, +92 +], +"vuetify:packages/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx": [ +66 +], +"vuetify:packages/vuetify/src/components/VCombobox/VCombobox.tsx": [ +177, +183, +392, +402, +430 +], +"vuetify:packages/vuetify/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts": [ +28 +], +"vuetify:packages/vuetify/src/components/VCombobox/__tests__/VCombobox.spec.cy.tsx": [ +23, +45, +46, +48, +62, +76, +89, +108, +109, +111, +126, +139, +151, +170, +196, +226, +255, +270, +302, +324, +337, +363, +401 +], +"vuetify:packages/vuetify/src/components/VCombobox/__tests__/VCombobox.spec.ts": [ +27 +], +"vuetify:packages/vuetify/src/components/VData/__tests__/VData.spec.ts": [ +33, +186, +386, +392, +426, +432, +463, +464, +471, +473, +551, +553 +], +"vuetify:packages/vuetify/src/components/VDataIterator/__tests__/VDataIterator.spec.ts": [ +125, +160, +198 +], +"vuetify:packages/vuetify/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts": [ +22 +], +"vuetify:packages/vuetify/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.cy.tsx": [ +14, +32, +55, +139 +], +"vuetify:packages/vuetify/src/components/VField/VField.tsx": [ +177 +], +"vuetify:packages/vuetify/src/components/VFileInput/VFileInput.tsx": [ +205 +], +"vuetify:packages/vuetify/src/components/VFileInput/__tests__/VFileInput.spec.cy.tsx": [ +146 +], +"vuetify:packages/vuetify/src/components/VForm/__tests__/VForm.spec.cy.tsx": [ +16, +47, +48, +77, +95, +126, +155, +168, +192, +215 +], +"vuetify:packages/vuetify/src/components/VHover/__tests__/VHover.spec.cy.tsx": [ +12, +29, +47 +], +"vuetify:packages/vuetify/src/components/VIcon/__tests__/VIcon.spec.cy.tsx": [ +10, +19, +28, +35, +47, +56, +65, +74, +85, +94 +], +"vuetify:packages/vuetify/src/components/VImg/VImg.tsx": [ +282 +], +"vuetify:packages/vuetify/src/components/VItemGroup/__tests__/VItemGroup.spec.cy.tsx": [ +13, +18 +], +"vuetify:packages/vuetify/src/components/VItemGroup/__tests__/VItemGroup.spec.ts": [ +100, +103, +130 +], +"vuetify:packages/vuetify/src/components/VLayout/__tests__/VLayout.spec.cy.tsx": [ +32, +34, +51, +53 +], +"vuetify:packages/vuetify/src/components/VList/VListChildren.tsx": [ +54, +55, +56, +57, +58, +69, +72 +], +"vuetify:packages/vuetify/src/components/VList/__tests__/VListItem.spec.cy.tsx": [ +30, +32 +], +"vuetify:packages/vuetify/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts": [ +29 +], +"vuetify:packages/vuetify/src/components/VOverlay/__tests__/VOverlay.spec.cy.tsx": [ +38, +39, +58, +59, +79, +80 +], +"vuetify:packages/vuetify/src/components/VOverlay/locationStrategies.ts": [ +221, +426 +], +"vuetify:packages/vuetify/src/components/VOverlay/scrollStrategies.ts": [ +130 +], +"vuetify:packages/vuetify/src/components/VPagination/VPagination.tsx": [ +221, +249 +], +"vuetify:packages/vuetify/src/components/VPagination/__tests__/VPagination.spec.cy.tsx": [ +42 +], +"vuetify:packages/vuetify/src/components/VProgressLinear/__tests__/VProgressLinear.spec.cy.tsx": [ +112, +129 +], +"vuetify:packages/vuetify/src/components/VRangeSlider/VRangeSlider.tsx": [ +184, +185, +202, +218, +219, +236 +], +"vuetify:packages/vuetify/src/components/VRating/VRating.tsx": [ +121, +125, +129, +137, +141 +], +"vuetify:packages/vuetify/src/components/VRating/__tests__/VRating.spec.cy.tsx": [ +101, +115 +], +"vuetify:packages/vuetify/src/components/VSelect/VSelect.tsx": [ +137, +144, +266, +275, +304 +], +"vuetify:packages/vuetify/src/components/VSelect/__tests__/VSelect.spec.cy.tsx": [ +23, +26, +39, +52, +89, +96, +106, +138, +152, +175, +255 +], +"vuetify:packages/vuetify/src/components/VSelectionControl/__tests__/VSelectionControl.spec.cy.tsx": [ +11, +23 +], +"vuetify:packages/vuetify/src/components/VSlideGroup/__tests__/VSlideGroup.spec.cy.tsx": [ +15, +43, +66, +67, +68, +88, +107, +139, +168, +191, +209, +230 +], +"vuetify:packages/vuetify/src/components/VSlider/VSlider.tsx": [ +149 +], +"vuetify:packages/vuetify/src/components/VSwitch/VSwitch.tsx": [ +118, +119 +], +"vuetify:packages/vuetify/src/components/VTabs/__tests__/VTabs.spec.cy.tsx": [ +135 +], +"vuetify:packages/vuetify/src/components/VTextField/VTextField.tsx": [ +202 +], +"vuetify:packages/vuetify/src/components/VTextarea/VTextarea.tsx": [ +248 +], +"vuetify:packages/vuetify/src/components/VTimePicker/__tests__/VTimePicker.spec.ts": [ +463, +465, +486, +487, +488 +], +"vuetify:packages/vuetify/src/components/VTimeline/__tests__/VTimeline.spec.cy.tsx": [ +20, +42, +62, +67, +72, +83, +112, +120, +149, +155, +190, +212, +232, +237, +242, +253, +282, +290, +319 +], +"vuetify:packages/vuetify/src/components/VToolbar/__tests__/VToolbar.spec.cy.tsx": [ +33 +], +"vuetify:packages/vuetify/src/components/VTreeview/VTreeviewNode.ts": [ +259 +], +"vuetify:packages/vuetify/src/components/transitions/createTransition.ts": [ +37, +40, +61 +], +"vuetify:packages/vuetify/src/composables/__tests__/filter.spec.ts": [ +37, +51, +52, +136, +150, +155, +160 +], +"vuetify:packages/vuetify/src/composables/__tests__/group.spec.ts": [ +17, +33, +74, +231, +256, +273 +], +"vuetify:packages/vuetify/src/composables/__tests__/location.spec.ts": [ +27 +], +"vuetify:packages/vuetify/src/composables/__tests__/mutationObserver.spec.ts": [ +16, +29 +], +"vuetify:packages/vuetify/src/composables/__tests__/proxiedModel.spec.ts": [ +149, +152, +157 +], +"vuetify:packages/vuetify/src/composables/__tests__/resizeObserver.spec.ts": [ +16 +], +"vuetify:packages/vuetify/src/composables/delay.ts": [ +30 +], +"vuetify:packages/vuetify/src/composables/layout.ts": [ +280 +], +"vuetify:packages/vuetify/src/composables/router.tsx": [ +98 +], +"vuetify:packages/vuetify/src/composables/stack.ts": [ +44 +], +"vuetify:packages/vuetify/src/composables/toggleScope.ts": [ +9 +], +"vuetify:packages/vuetify/src/composables/validation.ts": [ +125, +125 +], +"vuetify:packages/vuetify/src/directives/color/__tests__/color.spec.ts": [ +23, +26 +], +"vuetify:packages/vuetify/src/directives/scroll/__tests__/scroll.spec.ts": [ +19 +], +"vuetify:packages/vuetify/src/framework.ts": [ +86 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTable.tsx": [ +159 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTableGroupHeaderRow.tsx": [ +53, +72 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTableHeaders.tsx": [ +139, +154 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTableRow.tsx": [ +53 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTableRows.tsx": [ +140 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTableServer.tsx": [ +136 +], +"vuetify:packages/vuetify/src/labs/VDataTable/VDataTableVirtual.tsx": [ +149 +], +"vuetify:packages/vuetify/src/labs/VDataTable/__tests__/VDataTableHeader.spec.ts": [ +47, +64, +69, +79, +93, +106, +120, +130, +143 +], +"vuetify:packages/vuetify/src/labs/VDataTable/__tests__/VDataTableServer.spec.cy.tsx": [ +123 +], +"vuetify:packages/vuetify/src/labs/VDataTable/__tests__/VVirtualTable.spec.ts": [ +43 +], +"vuetify:packages/vuetify/src/labs/VDataTable/composables/headers.ts": [ +43 +], +"vuetify:packages/vuetify/src/labs/VDataTable/composables/items.ts": [ +28 +], +"vuetify:packages/vuetify/src/labs/VVirtualScroll/VVirtualScroll.tsx": [ +179 +], +"vuetify:packages/vuetify/src/labs/VVirtualScroll/__tests__/VVirtualScroll.spec.cy.tsx": [ +13 +], +"vuetify:packages/vuetify/src/locale/__tests__/index.spec.ts": [ +18 +], +"vuetify:packages/vuetify/src/util/__tests__/colorUtils.spec.ts": [ +48 +], +"vuetify:packages/vuetify/src/util/__tests__/getCurrentInstance.spec.tsx": [ +16 +], +"vuetify:packages/vuetify/src/util/__tests__/helpers.spec.ts": [ +286, +292, +308 +], +"vuetify:packages/vuetify/src/util/defineComponent.tsx": [ +78 +], +"vuetify:packages/vuetify/test/util/to-have-been-warned.ts": [ +63 +] +} diff --git a/its/ruling/src/test/expected/jsts/watchtower.js/javascript-S2004.json b/its/ruling/src/test/expected/jsts/watchtower.js/javascript-S2004.json new file mode 100644 index 00000000000..de05a44f32b --- /dev/null +++ b/its/ruling/src/test/expected/jsts/watchtower.js/javascript-S2004.json @@ -0,0 +1,58 @@ +{ +"watchtower.js:test/dirtychecking.spec.js": [ +15, +16, +183, +193, +449 +], +"watchtower.js:test/observer.spec.js": [ +15 +], +"watchtower.js:test/watchgroup.spec.js": [ +63, +279, +291, +305, +318, +330, +344, +363, +377, +404, +420, +422, +425, +440, +447, +507, +540, +563, +574, +599, +606, +613, +620, +625, +629, +647, +668, +683, +704, +726, +730, +747, +765, +793, +823, +830, +836, +843, +850, +859, +868, +878, +894, +917 +] +} diff --git a/packages/jsts/src/rules/S2004/cb.fixture.ts b/packages/jsts/src/rules/S2004/cb.fixture.ts new file mode 100644 index 00000000000..1ad01ee06a5 --- /dev/null +++ b/packages/jsts/src/rules/S2004/cb.fixture.ts @@ -0,0 +1,12 @@ +function f1() { +// ^^> {{Nesting +1}} + function f2() { +// ^^> {{Nesting +1}} + function f3() { +// ^^> {{Nesting +1}} + function f4() { // Noncompliant {{Refactor this code to not nest functions more than 3 levels deep.}} +// ^^ + } + } + } +} diff --git a/packages/jsts/src/rules/S2004/cb.test.ts b/packages/jsts/src/rules/S2004/cb.test.ts new file mode 100644 index 00000000000..8186308c34d --- /dev/null +++ b/packages/jsts/src/rules/S2004/cb.test.ts @@ -0,0 +1,28 @@ +/* + * SonarQube JavaScript Plugin + * Copyright (C) 2011-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +import { check } from '../tools'; +import { rule } from './'; +import path from 'path'; + +const sonarId = path.basename(__dirname); + +describe('Rule S2004', () => { + check(sonarId, rule, __dirname); +}); diff --git a/packages/jsts/src/rules/S2004/index.ts b/packages/jsts/src/rules/S2004/index.ts new file mode 100644 index 00000000000..da2121d0940 --- /dev/null +++ b/packages/jsts/src/rules/S2004/index.ts @@ -0,0 +1,20 @@ +/* + * SonarQube JavaScript Plugin + * Copyright (C) 2011-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +export { rule } from './rule'; diff --git a/packages/jsts/src/rules/S2004/rule.ts b/packages/jsts/src/rules/S2004/rule.ts new file mode 100644 index 00000000000..403fa0d6fc8 --- /dev/null +++ b/packages/jsts/src/rules/S2004/rule.ts @@ -0,0 +1,65 @@ +/* + * SonarQube JavaScript Plugin + * Copyright (C) 2011-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +// https://sonarsource.github.io/rspec/#/rspec/S2004/javascript + +import * as estree from 'estree'; +import { Rule } from 'eslint'; +import { TSESTree } from '@typescript-eslint/utils'; +import { getMainFunctionTokenLocation } from 'eslint-plugin-sonarjs/lib/utils/locations'; +import { SONAR_RUNTIME } from '../../linter/parameters'; +import { toEncodedMessage } from '../helpers'; + +const DEFAULT_THRESHOLD = 3; + +export const rule: Rule.RuleModule = { + meta: { + schema: [ + { type: 'integer' }, + { + // internal parameter for rules having secondary locations + enum: [SONAR_RUNTIME], + }, + ], + }, + create(context: Rule.RuleContext) { + const max = context.options[0] || DEFAULT_THRESHOLD; + const nestedStack: TSESTree.FunctionLike[] = []; + return { + ':function'(node: estree.Node) { + const fn = node as TSESTree.FunctionLike; + nestedStack.push(fn); + if (nestedStack.length === max + 1) { + const secondaries = nestedStack.slice(0, -1); + context.report({ + loc: getMainFunctionTokenLocation(fn, fn.parent, context), + message: toEncodedMessage( + `Refactor this code to not nest functions more than ${max} levels deep.`, + secondaries.map(n => ({ loc: getMainFunctionTokenLocation(n, n.parent, context) })), + secondaries.map(_ => 'Nesting +1'), + ), + }); + } + }, + ':function:exit'() { + nestedStack.pop(); + }, + }; + }, +}; diff --git a/packages/jsts/src/rules/S2004/unit.test.ts b/packages/jsts/src/rules/S2004/unit.test.ts new file mode 100644 index 00000000000..82fa690cb19 --- /dev/null +++ b/packages/jsts/src/rules/S2004/unit.test.ts @@ -0,0 +1,57 @@ +/* + * SonarQube JavaScript Plugin + * Copyright (C) 2011-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +import { RuleTester } from 'eslint'; +import { rule } from './'; + +const ruleTester = new RuleTester(); +ruleTester.run('Functions should not be nested too deeply', rule, { + valid: [ + { + code: ` + function f1() { + function f2() { + function f3() { + + } + } + }`, + }, + ], + invalid: [ + { + code: ` + function f1() { + function f2() { + function f3() { + function f4() { + function f5() { + function f6() { + + } + } + } + } + } + }`, + options: [5], + errors: 1, + }, + ], +}); diff --git a/packages/jsts/src/rules/index.ts b/packages/jsts/src/rules/index.ts index b3bfc98745f..b68e938c33a 100644 --- a/packages/jsts/src/rules/index.ts +++ b/packages/jsts/src/rules/index.ts @@ -127,6 +127,7 @@ import { rule as S4275 } from './S4275'; // no-accessor-field-mismatch import { rule as S2871 } from './S2871'; // no-alphabetical-sort import { rule as S6268 } from './S6268'; // no-angular-bypass-sanitization import { rule as S2870 } from './S2870'; // no-array-delete +import { rule as S6479 } from './S6479'; // no-array-index-key import { rule as S3579 } from './S3579'; // no-associative-arrays import { rule as S6551 } from './S6551'; // no-base-to-string import { rule as S2424 } from './S2424'; // no-built-in-override @@ -176,6 +177,7 @@ import { rule as S6544 } from './S6544'; // no-misused-promises import { rule as S5730 } from './S5730'; // no-mixed-content import { rule as S1121 } from './S1121'; // no-nested-assignment import { rule as S3358 } from './S3358'; // no-nested-conditional +import { rule as S2004 } from './S2004'; // no-nested-functions import { rule as S881 } from './S881'; // no-nested-incdec import { rule as S4036 } from './S4036'; // no-os-command-from-path import { rule as S1226 } from './S1226'; // no-parameter-reassignment @@ -300,7 +302,6 @@ import { rule as S2817 } from './S2817'; // web-sql-database import { rule as S5689 } from './S5689'; // x-powered-by import { rule as S2755 } from './S2755'; // xml-parser-xxe import { rule as S4817 } from './S4817'; // xpath -import { rule as S6479 } from './S6479'; // no-array-index-key /** * Maps ESLint rule keys declared in the JavaScript checks to rule implementations @@ -415,6 +416,7 @@ rules['no-accessor-field-mismatch'] = S4275; rules['no-alphabetical-sort'] = S2871; rules['no-angular-bypass-sanitization'] = S6268; rules['no-array-delete'] = S2870; +rules['no-array-index-key'] = S6479; rules['no-associative-arrays'] = S3579; rules['no-base-to-string'] = S6551; rules['no-built-in-override'] = S2424; @@ -464,6 +466,7 @@ rules['no-misused-promises'] = S6544; rules['no-mixed-content'] = S5730; rules['no-nested-assignment'] = S1121; rules['no-nested-conditional'] = S3358; +rules['no-nested-functions'] = S2004; rules['no-nested-incdec'] = S881; rules['no-os-command-from-path'] = S4036; rules['no-parameter-reassignment'] = S1226; @@ -588,6 +591,5 @@ rules['web-sql-database'] = S2817; rules['x-powered-by'] = S5689; rules['xml-parser-xxe'] = S2755; rules['xpath'] = S4817; -rules['no-array-index-key'] = S6479; export { rules }; diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/CheckList.java b/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/CheckList.java index d1c0c40accf..da20abc4237 100644 --- a/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/CheckList.java +++ b/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/CheckList.java @@ -302,6 +302,7 @@ public static List> getAllChecks() { NoMixedContentCheck.class, NoMixedEnumsCheck.class, NoMutableExportsCheck.class, + NoNestedFunctionsCheck.class, NoNestedSwitchCheck.class, NoNestedTemplateLiteralsCheck.class, NoNewNativeNonconstructorCheck.class, diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/NoNestedFunctionsCheck.java b/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/NoNestedFunctionsCheck.java new file mode 100644 index 00000000000..613dd0d01d2 --- /dev/null +++ b/sonar-plugin/javascript-checks/src/main/java/org/sonar/javascript/checks/NoNestedFunctionsCheck.java @@ -0,0 +1,53 @@ +/* + * SonarQube JavaScript Plugin + * Copyright (C) 2011-2024 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.javascript.checks; + +import java.util.Collections; +import java.util.List; +import org.sonar.check.Rule; +import org.sonar.check.RuleProperty; +import org.sonar.plugins.javascript.api.EslintBasedCheck; +import org.sonar.plugins.javascript.api.JavaScriptRule; +import org.sonar.plugins.javascript.api.TypeScriptRule; + +@JavaScriptRule +@TypeScriptRule +@Rule(key = "S2004") +public class NoNestedFunctionsCheck implements EslintBasedCheck { + + private static final int DEFAULT_THRESHOLD = 3; + + @RuleProperty( + key = "max", + description = "Maximum depth of allowed nested functions.", + defaultValue = "" + DEFAULT_THRESHOLD + ) + int threshold = DEFAULT_THRESHOLD; + + @Override + public List configurations() { + return Collections.singletonList(threshold); + } + + @Override + public String eslintKey() { + return "no-nested-functions"; + } +} diff --git a/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/S2004.html b/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/S2004.html new file mode 100644 index 00000000000..f0e87a4af6b --- /dev/null +++ b/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/S2004.html @@ -0,0 +1,25 @@ +

Why is this an issue?

+

Nested functions refer to the practice of defining a function within another function. These inner functions have access to the variables and +parameters of the outer function, creating a closure.

+

While nesting functions is a common practice in JavaScript, deeply nested functions can make the code harder to read and understand, especially if +the functions are long or if there are many levels of nesting.

+

This can make it difficult for other developers or even yourself to understand and maintain the code.

+

Noncompliant code example

+

With the default threshold of 3 levels:

+
+function f() {
+  function f_inner() {
+    function f_inner_inner() {
+      function f_inner_inner_inner() { // Noncompliant
+      }
+    }
+  }
+}
+
+

Resources

+

Documentation

+ + diff --git a/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/S2004.json b/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/S2004.json new file mode 100644 index 00000000000..4baf8e19d25 --- /dev/null +++ b/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/S2004.json @@ -0,0 +1,27 @@ +{ + "title": "Functions should not be nested too deeply", + "type": "CODE_SMELL", + "code": { + "impacts": { + "MAINTAINABILITY": "HIGH" + }, + "attribute": "FOCUSED" + }, + "status": "ready", + "remediation": { + "func": "Constant\/Issue", + "constantCost": "20min" + }, + "tags": [ + "brain-overload" + ], + "defaultSeverity": "Critical", + "ruleSpecification": "RSPEC-2004", + "sqKey": "S2004", + "scope": "Main", + "quickfix": "unknown", + "compatibleLanguages": [ + "JAVASCRIPT", + "TYPESCRIPT" + ] +} diff --git a/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/Sonar_way_profile.json b/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/Sonar_way_profile.json index 1ba209aac8a..7e461a716d7 100644 --- a/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/Sonar_way_profile.json +++ b/sonar-plugin/javascript-checks/src/main/resources/org/sonar/l10n/javascript/rules/javascript/Sonar_way_profile.json @@ -55,6 +55,7 @@ "S1874", "S1940", "S1994", + "S2004", "S2068", "S2077", "S2092",