From 0c4ba592f67a25059eb7ca0a1e3e769758c6af46 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 30 Jun 2023 09:39:21 +0100 Subject: [PATCH] Tools: Apply rule github/array-foreach --- .eslintrc.js | 3 + package.json | 1 + packages/app-cli/app/LinkSelector.ts | 1 + packages/app-cli/app/app.js | 1 + packages/app-cli/app/build-doc.js | 1 + packages/app-cli/app/command-config.js | 1 + packages/app-cli/app/command-e2ee.ts | 1 + packages/app-clipper/popup/config/env.js | 1 + packages/app-clipper/popup/scripts/start.js | 1 + .../controls/plugins/PluginsStates.tsx | 1 + .../commands/showSpellCheckerMenu.ts | 1 + .../NoteBody/CodeMirror/CodeMirror.tsx | 1 + .../NoteBody/CodeMirror/utils/useKeymap.ts | 1 + packages/app-mobile/tools/encodeAssets.js | 1 + .../app/templates/webpack.config.js | 2 + packages/lib/ArrayUtils.test.js | 1 + packages/lib/StringUtils.test.js | 3 + packages/lib/models/Folder.test.ts | 3 + packages/lib/models/Folder.ts | 1 + packages/lib/models/Setting.ts | 1 + packages/lib/services/KeymapService.test.js | 9 + packages/lib/services/KeymapService.ts | 1 + packages/lib/services/rest/Api.test.ts | 1 + .../lib/services/searchengine/SearchEngine.ts | 1 + .../lib/services/searchengine/filterParser.ts | 1 + .../lib/services/searchengine/queryBuilder.ts | 5 + .../spellChecker/SpellCheckerService.ts | 1 + packages/pdf-viewer/hooks/useIsVisible.ts | 1 + .../server/src/commands/MigrateCommand.ts | 1 + packages/tools/build-translation.js | 1 + packages/tools/bundleDefaultPlugins.test.ts | 1 + yarn.lock | 427 +++++++++++++++++- 32 files changed, 473 insertions(+), 4 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 248f8f09a..9682ce09b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -97,6 +97,7 @@ module.exports = { 'promise/prefer-await-to-then': 'error', 'no-unneeded-ternary': 'error', + 'github/array-foreach': ['error'], // ------------------------------- // Formatting @@ -161,6 +162,7 @@ module.exports = { 'import', 'promise', 'jest', + 'github', ], 'overrides': [ { @@ -181,6 +183,7 @@ module.exports = { 'project': './tsconfig.eslint.json', }, 'rules': { + 'github/array-foreach': ['error'], '@typescript-eslint/explicit-member-accessibility': ['error'], '@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }], '@typescript-eslint/array-type': 'error', diff --git a/package.json b/package.json index c3b591b43..ca17308d9 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ }, "dependencies": { "@types/fs-extra": "11.0.1", + "eslint-plugin-github": "4.8.0", "http-server": "14.1.1", "node-gyp": "9.3.1", "nodemon": "2.0.22" diff --git a/packages/app-cli/app/LinkSelector.ts b/packages/app-cli/app/LinkSelector.ts index f7f1f9d4d..0f028ac39 100644 --- a/packages/app-cli/app/LinkSelector.ts +++ b/packages/app-cli/app/LinkSelector.ts @@ -43,6 +43,7 @@ class LinkSelector { for (let i = 0; i < lines.length; i++) { const r = (lines[i] as any).matchAll(this.linkRegex_); const matches = [...r]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied matches.forEach((_e, n) => { newLinkStore.push( { diff --git a/packages/app-cli/app/app.js b/packages/app-cli/app/app.js index 35d4f1481..baef949eb 100644 --- a/packages/app-cli/app/app.js +++ b/packages/app-cli/app/app.js @@ -146,6 +146,7 @@ class Application extends BaseApplication { commands(uiType = null) { if (!this.allCommandsLoaded_) { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied fs.readdirSync(__dirname).forEach(path => { if (path.indexOf('command-') !== 0) return; if (path.endsWith('.test.js')) return; diff --git a/packages/app-cli/app/build-doc.js b/packages/app-cli/app/build-doc.js index 1cdc64e45..980243a1e 100644 --- a/packages/app-cli/app/build-doc.js +++ b/packages/app-cli/app/build-doc.js @@ -49,6 +49,7 @@ function renderCommand(cmd) { function getCommands() { const output = []; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied fs.readdirSync(__dirname).forEach(path => { if (path.indexOf('command-') !== 0) return; const ext = fileExtension(path); diff --git a/packages/app-cli/app/command-config.js b/packages/app-cli/app/command-config.js index d6bdd16b5..1bf9630ec 100644 --- a/packages/app-cli/app/command-config.js +++ b/packages/app-cli/app/command-config.js @@ -44,6 +44,7 @@ class Command extends BaseCommand { return reject(new Error(`Invalid JSON passed to config --import: \n${error.message}.`)); } if (settingsObj) { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied Object.entries(settingsObj) .forEach(([key, value]) => { Setting.setValue(key, value); diff --git a/packages/app-cli/app/command-e2ee.ts b/packages/app-cli/app/command-e2ee.ts index 96836cb96..f748ab2e3 100644 --- a/packages/app-cli/app/command-e2ee.ts +++ b/packages/app-cli/app/command-e2ee.ts @@ -179,6 +179,7 @@ class Command extends BaseCommand { const dirPaths = function(targetPath: string) { const paths: string[] = []; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied fs.readdirSync(targetPath).forEach((path: string) => { paths.push(path); }); diff --git a/packages/app-clipper/popup/config/env.js b/packages/app-clipper/popup/config/env.js index 9c76d46a3..562ac99e7 100644 --- a/packages/app-clipper/popup/config/env.js +++ b/packages/app-clipper/popup/config/env.js @@ -30,6 +30,7 @@ const dotenvFiles = [ // that have already been set. Variable expansion is supported in .env files. // https://github.com/motdotla/dotenv // https://github.com/motdotla/dotenv-expand +// eslint-disable-next-line github/array-foreach -- Old code before rule was applied dotenvFiles.forEach(dotenvFile => { if (fs.existsSync(dotenvFile)) { require('dotenv-expand')( diff --git a/packages/app-clipper/popup/scripts/start.js b/packages/app-clipper/popup/scripts/start.js index 98775f2c7..f994c9244 100644 --- a/packages/app-clipper/popup/scripts/start.js +++ b/packages/app-clipper/popup/scripts/start.js @@ -130,6 +130,7 @@ checkBrowsers(paths.appPath, isInteractive) openBrowser(urls.localUrlForBrowser); }); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied ['SIGINT', 'SIGTERM'].forEach((sig) => { process.on(sig, () => { devServer.close(); diff --git a/packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginsStates.tsx b/packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginsStates.tsx index 8b086c790..cb8087a1f 100644 --- a/packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginsStates.tsx +++ b/packages/app-desktop/gui/ConfigScreen/controls/plugins/PluginsStates.tsx @@ -146,6 +146,7 @@ export default function(props: Props) { const pluginIds = await repoApi().canBeUpdatedPlugins(pluginItems.map(p => p.manifest), pluginService.appVersion); if (cancelled) return; const conv: Record = {}; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied pluginIds.forEach(id => conv[id] = true); setCanBeUpdatedPluginIds(conv); } diff --git a/packages/app-desktop/gui/MainScreen/commands/showSpellCheckerMenu.ts b/packages/app-desktop/gui/MainScreen/commands/showSpellCheckerMenu.ts index e1aee8d1b..f52aaf8d0 100644 --- a/packages/app-desktop/gui/MainScreen/commands/showSpellCheckerMenu.ts +++ b/packages/app-desktop/gui/MainScreen/commands/showSpellCheckerMenu.ts @@ -28,6 +28,7 @@ export const runtime = (): CommandRuntime => { const languages = state.settings['spellChecker.languages']; if (languages.length === 0) return null; const s: string[] = []; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied languages.forEach((language: string) => { s.push(language.split('-')[0]); }); diff --git a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx index 1ed9e5599..5a4eefee2 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx +++ b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.tsx @@ -863,6 +863,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) { })); } + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied menuUtils.pluginContextMenuItems(props.plugins, MenuItemLocation.EditorContextMenu).forEach((item: any) => { menu.append(new MenuItem(item)); }); diff --git a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useKeymap.ts b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useKeymap.ts index ce01b577e..d545b4938 100644 --- a/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useKeymap.ts +++ b/packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/utils/useKeymap.ts @@ -89,6 +89,7 @@ export default function useKeymap(CodeMirror: any) { function registerKeymap() { const keymapItems = KeymapService.instance().getKeymapItems(); // Register all commands with the codemirror editor + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied keymapItems.forEach((key) => { registerJoplinCommand(key); }); } diff --git a/packages/app-mobile/tools/encodeAssets.js b/packages/app-mobile/tools/encodeAssets.js index b2fe3751f..fb243bdb6 100644 --- a/packages/app-mobile/tools/encodeAssets.js +++ b/packages/app-mobile/tools/encodeAssets.js @@ -8,6 +8,7 @@ const outputDir = `${rootDir}/pluginAssets`; const walk = function(dir) { let results = []; const list = fs.readdirSync(dir); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied list.forEach((file) => { file = `${dir}/${file}`; const stat = fs.statSync(file); diff --git a/packages/generator-joplin/generators/app/templates/webpack.config.js b/packages/generator-joplin/generators/app/templates/webpack.config.js index dc5557d9d..67e8cb9d3 100644 --- a/packages/generator-joplin/generators/app/templates/webpack.config.js +++ b/packages/generator-joplin/generators/app/templates/webpack.config.js @@ -85,6 +85,7 @@ function currentGitInfo() { function validateCategories(categories) { if (!categories) return null; if ((categories.length !== new Set(categories).size)) throw new Error('Repeated categories are not allowed'); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied categories.forEach(category => { if (!allPossibleCategories.map(category => { return category.name; }).includes(category)) throw new Error(`${category} is not a valid category. Please make sure that the category name is lowercase. Valid categories are: \n${allPossibleCategories.map(category => { return category.name; })}\n`); }); @@ -92,6 +93,7 @@ function validateCategories(categories) { function validateScreenshots(screenshots) { if (!screenshots) return null; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied screenshots.forEach(screenshot => { if (!screenshot.src) throw new Error('You must specify a src for each screenshot'); diff --git a/packages/lib/ArrayUtils.test.js b/packages/lib/ArrayUtils.test.js index 31345975d..9289cdf3b 100644 --- a/packages/lib/ArrayUtils.test.js +++ b/packages/lib/ArrayUtils.test.js @@ -72,6 +72,7 @@ describe('ArrayUtils', () => { ], ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCases.forEach((t, i) => { const intervals = t[0]; const expected = t[1]; diff --git a/packages/lib/StringUtils.test.js b/packages/lib/StringUtils.test.js index 36e25f322..6751a33e8 100644 --- a/packages/lib/StringUtils.test.js +++ b/packages/lib/StringUtils.test.js @@ -46,8 +46,10 @@ describe('StringUtils', () => { ['Joplin is a free, open source\n note taking and *to-do* application', [[0, 6], [12, 17], [23, 29], [48, 54]]], ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCases.forEach((t, i) => { const str = t[0]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied t[1].forEach((pair, j) => { const begin = pair[0]; const expected = pair[1]; @@ -75,6 +77,7 @@ describe('StringUtils', () => { [`command1 arg\\1 'arg2${eol}continue\\'continue' arg3`]], ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCases.forEach((t) => { expect(splitCommandBatch(t[0])).toEqual(t[1]); }); diff --git a/packages/lib/models/Folder.test.ts b/packages/lib/models/Folder.test.ts index a4537df76..787d17c25 100644 --- a/packages/lib/models/Folder.test.ts +++ b/packages/lib/models/Folder.test.ts @@ -138,6 +138,7 @@ describe('models/Folder', () => { const folders = await Folder.all({ includeConflictFolder: false }); await Folder.addNoteCounts(folders); const foldersById: any = {}; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied folders.forEach((f: FolderEntity) => { foldersById[f.id] = f; }); expect(folders.length).toBe(4); @@ -151,6 +152,7 @@ describe('models/Folder', () => { const folders = await Folder.all({ includeConflictFolder: true }); await Folder.addNoteCounts(folders); const foldersById: any = {}; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied folders.forEach((f: FolderEntity) => { foldersById[f.id] = f; }); expect(folders.length).toBe(5); @@ -176,6 +178,7 @@ describe('models/Folder', () => { await Folder.addNoteCounts(folders, false); const foldersById: any = {}; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied folders.forEach((f: FolderEntity) => { foldersById[f.id] = f; }); expect(folders.length).toBe(4); diff --git a/packages/lib/models/Folder.ts b/packages/lib/models/Folder.ts index 43444f6d0..ba4d2c4b8 100644 --- a/packages/lib/models/Folder.ts +++ b/packages/lib/models/Folder.ts @@ -150,6 +150,7 @@ export default class Folder extends BaseItem { `; const noteCounts = await this.db().selectAll(sql); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied noteCounts.forEach((noteCount: any) => { let parentId = noteCount.folder_id; do { diff --git a/packages/lib/models/Setting.ts b/packages/lib/models/Setting.ts index f840fcef3..c2481f0c4 100644 --- a/packages/lib/models/Setting.ts +++ b/packages/lib/models/Setting.ts @@ -1752,6 +1752,7 @@ class Setting extends BaseModel { public static applyUserSettingMigration() { // Function to translate existing user settings to new setting. + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied userSettingMigration.forEach(userMigration => { if (!this.isSet(userMigration.newName) && this.isSet(userMigration.oldName)) { this.setValue(userMigration.newName, userMigration.transformValue(this.value(userMigration.oldName))); diff --git a/packages/lib/services/KeymapService.test.js b/packages/lib/services/KeymapService.test.js index c8fce533e..5180a9499 100644 --- a/packages/lib/services/KeymapService.test.js +++ b/packages/lib/services/KeymapService.test.js @@ -30,8 +30,10 @@ describe('services_KeymapService', () => { ], }; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied Object.entries(testCases).forEach(([platform, accelerators]) => { keymapService.initialize([], platform); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied accelerators.forEach(accelerator => { expect(() => keymapService.validateAccelerator(accelerator)).not.toThrow(); }); @@ -68,8 +70,10 @@ describe('services_KeymapService', () => { ], }; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied Object.entries(testCases).forEach(([platform, accelerators]) => { keymapService.initialize([], platform); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied accelerators.forEach(accelerator => { expect(() => keymapService.validateAccelerator(accelerator)).toThrow(); }); @@ -142,6 +146,7 @@ describe('services_KeymapService', () => { { command: 'focusElementNoteBody', accelerator: 'Ctrl+Option+Shift+Cmd+B' }, ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCases_Darwin.forEach(({ command, accelerator }) => { keymapService.setAccelerator(command, accelerator); expect(keymapService.getAccelerator(command)).toEqual(accelerator); @@ -159,6 +164,7 @@ describe('services_KeymapService', () => { { command: 'focusElementNoteBody', accelerator: 'Ctrl+Alt+Shift+B' }, ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCases_Linux.forEach(({ command, accelerator }) => { keymapService.setAccelerator(command, accelerator); expect(keymapService.getAccelerator(command)).toEqual(accelerator); @@ -181,6 +187,7 @@ describe('services_KeymapService', () => { { command: 'focusElementNoteBody', accelerator: 'Ctrl+Alt+Shift+B' }, ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCases.forEach(({ command, accelerator }) => { // Remember the real default Accelerator value const defaultAccelerator = keymapService.getAccelerator(command); @@ -212,6 +219,7 @@ describe('services_KeymapService', () => { ]; expect(() => keymapService.overrideKeymap(customKeymapItems_Darwin)).not.toThrow(); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied customKeymapItems_Darwin.forEach(({ command, accelerator }) => { // Also check if keymap is updated or not expect(keymapService.getAccelerator(command)).toEqual(accelerator); @@ -233,6 +241,7 @@ describe('services_KeymapService', () => { ]; expect(() => keymapService.overrideKeymap(customKeymapItems_Win32)).not.toThrow(); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied customKeymapItems_Win32.forEach(({ command, accelerator }) => { // Also check if keymap is updated or not expect(keymapService.getAccelerator(command)).toEqual(accelerator); diff --git a/packages/lib/services/KeymapService.ts b/packages/lib/services/KeymapService.ts index 8278661d5..d4d5540ce 100644 --- a/packages/lib/services/KeymapService.ts +++ b/packages/lib/services/KeymapService.ts @@ -262,6 +262,7 @@ export default class KeymapService extends BaseService { public getCustomKeymapItems() { const customkeymapItems: KeymapItem[] = []; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied this.defaultKeymapItems.forEach(({ command, accelerator }) => { const currentAccelerator = this.getAccelerator(command); diff --git a/packages/lib/services/rest/Api.test.ts b/packages/lib/services/rest/Api.test.ts index 99683eaaf..0792cbee0 100644 --- a/packages/lib/services/rest/Api.test.ts +++ b/packages/lib/services/rest/Api.test.ts @@ -480,6 +480,7 @@ describe('services_rest_Api', () => { result: [], }, ]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied tests.forEach((test) => { const urls = extractMediaUrls(test.language, test.body); expect(urls).toEqual(test.result); diff --git a/packages/lib/services/searchengine/SearchEngine.ts b/packages/lib/services/searchengine/SearchEngine.ts index 528020164..c588f299e 100644 --- a/packages/lib/services/searchengine/SearchEngine.ts +++ b/packages/lib/services/searchengine/SearchEngine.ts @@ -365,6 +365,7 @@ export default class SearchEngine { const row = rows[i]; row.weight = 0; for (let j = 0; j < numPhrases; j++) { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied columns.forEach(column => { const rowsWithHits = docsWithHits(X[i], column, j); const frequencyHits = hitsThisRow(X[i], column, j); diff --git a/packages/lib/services/searchengine/filterParser.ts b/packages/lib/services/searchengine/filterParser.ts index caf8efd20..e99b3bbd3 100644 --- a/packages/lib/services/searchengine/filterParser.ts +++ b/packages/lib/services/searchengine/filterParser.ts @@ -90,6 +90,7 @@ const parseQuery = (query: string): Term[] => { // Trim quotes since we don't support phrase query here // eg. Split title:"hello world" to title:hello title:world const values = trimQuotes(value).split(/[\s-_]+/); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied values.forEach(value => { result.push({ name, value, negated, wildcard: value.indexOf('*') >= 0 }); }); diff --git a/packages/lib/services/searchengine/queryBuilder.ts b/packages/lib/services/searchengine/queryBuilder.ts index 956416bc5..545aba889 100644 --- a/packages/lib/services/searchengine/queryBuilder.ts +++ b/packages/lib/services/searchengine/queryBuilder.ts @@ -237,6 +237,7 @@ const genericFilter = (terms: Term[], conditions: string[], params: string[], re } }; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied terms.forEach(term => { conditions.push(` ${relation} ( ${term.name === 'due' ? 'is_todo IS 1 AND ' : ''} ROWID IN ( @@ -263,6 +264,7 @@ const biConditionalFilter = (terms: Term[], conditions: string[], relation: Rela const values = terms.map(x => x.value); // AND and OR are handled differently because FTS restricts how OR can be used. + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied values.forEach(value => { if (relation === 'AND') { conditions.push(` @@ -369,6 +371,7 @@ const textFilter = (terms: Term[], conditions: string[], params: string[], relat params.push(excludedTerms.map(x => x.value).join(' OR ')); } if (relation === 'OR') { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied excludedTerms.forEach(term => { conditions.push(` OR ROWID IN ( @@ -386,6 +389,7 @@ const textFilter = (terms: Term[], conditions: string[], params: string[], relat }); } } else { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied excludedTerms.forEach(term => { createLikeMatch(term, true); }); @@ -405,6 +409,7 @@ const textFilter = (terms: Term[], conditions: string[], params: string[], relat const matchQuery = (relation === 'OR') ? termsToMatch.join(' OR ') : termsToMatch.join(' '); params.push(matchQuery); } else { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied includedTerms.forEach(term => { createLikeMatch(term, false); }); diff --git a/packages/lib/services/spellChecker/SpellCheckerService.ts b/packages/lib/services/spellChecker/SpellCheckerService.ts index ffe2411dd..1fa65bd1e 100644 --- a/packages/lib/services/spellChecker/SpellCheckerService.ts +++ b/packages/lib/services/spellChecker/SpellCheckerService.ts @@ -45,6 +45,7 @@ export default class SpellCheckerService { } if (languages.length > languagesHistorySizeMax) { + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied this.latestSelectedLanguages_.forEach(l => { if (!this.languages.includes(l) && languages.length > languagesHistorySizeMax) languages.splice(languages.indexOf(l), 1); }); diff --git a/packages/pdf-viewer/hooks/useIsVisible.ts b/packages/pdf-viewer/hooks/useIsVisible.ts index a68859a86..1fd152d9a 100644 --- a/packages/pdf-viewer/hooks/useIsVisible.ts +++ b/packages/pdf-viewer/hooks/useIsVisible.ts @@ -12,6 +12,7 @@ const useIsVisible = (elementRef: MutableRefObject, rootRef: Mutabl if (elementRef.current) { observer = new IntersectionObserver((entries, _observer) => { let visible = false; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied entries.forEach((entry) => { if (entry.isIntersecting) { visible = true; diff --git a/packages/server/src/commands/MigrateCommand.ts b/packages/server/src/commands/MigrateCommand.ts index b058ea87c..bec64620f 100644 --- a/packages/server/src/commands/MigrateCommand.ts +++ b/packages/server/src/commands/MigrateCommand.ts @@ -64,6 +64,7 @@ export default class MigrateCommand extends BaseCommand { }, list: async () => { const s = (await migrateList(runContext.db)) as string; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied s.split('\n').forEach(l => logger.info(l)); }, unlock: async () => { diff --git a/packages/tools/build-translation.js b/packages/tools/build-translation.js index a0f1478aa..b39d17c46 100644 --- a/packages/tools/build-translation.js +++ b/packages/tools/build-translation.js @@ -198,6 +198,7 @@ function buildIndex(locales, stats) { function availableLocales(defaultLocale) { const output = [defaultLocale]; + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied fs.readdirSync(localesDir).forEach((path) => { if (fileExtension(path) !== 'po') return; const locale = filename(path); diff --git a/packages/tools/bundleDefaultPlugins.test.ts b/packages/tools/bundleDefaultPlugins.test.ts index cb148f58d..c3e3f1d48 100644 --- a/packages/tools/bundleDefaultPlugins.test.ts +++ b/packages/tools/bundleDefaultPlugins.test.ts @@ -178,6 +178,7 @@ describe('bundleDefaultPlugins', () => { expect(mockFetch).toHaveBeenCalledTimes(testCase.numberOfCalls); + // eslint-disable-next-line github/array-foreach -- Old code before rule was applied testCase.calledWith.forEach((callValue, index) => expect(mockFetch).toHaveBeenNthCalledWith(index + 1, callValue)); jest.clearAllMocks(); diff --git a/yarn.lock b/yarn.lock index add755703..33c5e1dc2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2722,7 +2722,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.22.5 resolution: "@babel/runtime@npm:7.22.5" dependencies: @@ -3835,6 +3835,13 @@ __metadata: languageName: node linkType: hard +"@github/browserslist-config@npm:^1.0.0": + version: 1.0.0 + resolution: "@github/browserslist-config@npm:1.0.0" + checksum: 58f6931e999ab043da5621621f71943649d8ede64e0f0f9ccdaa3cec3568c9944cd8f37bafdd671d45b2d33b32affe1b88dd06d332ddc88616ec8eec00d0575c + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0": version: 9.2.1 resolution: "@hapi/hoek@npm:9.2.1" @@ -8072,6 +8079,30 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:^5.1.0": + version: 5.60.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.60.1" + dependencies: + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/type-utils": 5.60.1 + "@typescript-eslint/utils": 5.60.1 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 6ea3fdc64b216ee709318bfce1573cd8d90836150f0075aaa8755c347541af9ec026043e538a3264d28d1b32ff49b1fd7c6163826b8513f19f0957fefccf7752 + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:5.59.0": version: 5.59.0 resolution: "@typescript-eslint/parser@npm:5.59.0" @@ -8089,6 +8120,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^5.1.0": + version: 5.60.1 + resolution: "@typescript-eslint/parser@npm:5.60.1" + dependencies: + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/typescript-estree": 5.60.1 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 08f1552ab0da178524a8de3654d2fb7c8ecb9efdad8e771c9cbf4af555c42e77d17b2c182d139a531cc76c3cabd091d1d25024c2c215cb809dca8b147c8a493c + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:5.54.1": version: 5.54.1 resolution: "@typescript-eslint/scope-manager@npm:5.54.1" @@ -8109,6 +8157,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/scope-manager@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/visitor-keys": 5.60.1 + checksum: 32c0786123f12fbb861aba3527471134a2e9978c7f712e0d7650080651870903482aed72a55f81deba9493118c1ca3c57edaaaa75d7acd9892818e3e9cc341ef + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:5.59.0": version: 5.59.0 resolution: "@typescript-eslint/type-utils@npm:5.59.0" @@ -8126,6 +8184,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/type-utils@npm:5.60.1" + dependencies: + "@typescript-eslint/typescript-estree": 5.60.1 + "@typescript-eslint/utils": 5.60.1 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: f8d5f87b5441d5c671f69631efd103f5f45e0cb7dbe0131a5b4234a5208ac845041219e8baaa3adc341e82a602165dd6fabf4fd06964d0109d0875425c8ac918 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:4.33.0": version: 4.33.0 resolution: "@typescript-eslint/types@npm:4.33.0" @@ -8154,6 +8229,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/types@npm:5.60.1" + checksum: 766b6c857493b72a8f515e6a8e409476a317b7a7f0401fbcdf18f417839fca004dcaf06f58eb5ba00777e3ca9c68cd2f56fda79f3a8eb8a418095b5b1f625712 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.54.1": version: 5.54.1 resolution: "@typescript-eslint/typescript-estree@npm:5.54.1" @@ -8190,6 +8272,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/visitor-keys": 5.60.1 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 5bb9d08c3cbc303fc64647878cae37283c4cfa9e3ed00da02ee25dc2e46798a1ad6964c9f04086f0134716671357e6569a65ea0ae75f0f3ff94ae67666385c6f + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:^4.8.2": version: 4.33.0 resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" @@ -8244,6 +8344,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/utils@npm:5.60.1" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/typescript-estree": 5.60.1 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 00c1adaa09d5d5be947e98962a78c21ed08c3ac46dd5ddd7b78f6102537d50afd4578a42a3e09a24dd51f5bc493f0b968627b4423647540164b2d2380afa9246 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:^5.10.0": version: 5.54.1 resolution: "@typescript-eslint/utils@npm:5.54.1" @@ -8302,6 +8420,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + eslint-visitor-keys: ^3.3.0 + checksum: 137f6a6f8efb398969087147b59f99f7d0deed044d89d7efce3631bb90bc32e3a13a5cee6a65e1c9830862c5c4402ac1a9b2c9e31fe46d1716602af2813bffae + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/ast@npm:1.11.1" @@ -9139,6 +9267,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:^5.1.3": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 + languageName: node + linkType: hard + "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -9512,6 +9649,13 @@ __metadata: languageName: node linkType: hard +"ast-types-flow@npm:^0.0.7": + version: 0.0.7 + resolution: "ast-types-flow@npm:0.0.7" + checksum: a26dcc2182ffee111cad7c471759b0bda22d3b7ebacf27c348b22c55f16896b18ab0a4d03b85b4020dce7f3e634b8f00b593888f622915096ea1927fa51866c4 + languageName: node + linkType: hard + "ast-types@npm:0.14.2": version: 0.14.2 resolution: "ast-types@npm:0.14.2" @@ -9699,6 +9843,22 @@ __metadata: languageName: node linkType: hard +"axe-core@npm:^4.6.2": + version: 4.7.2 + resolution: "axe-core@npm:4.7.2" + checksum: 5d86fa0f45213b0e54cbb5d713ce885c4a8fe3a72b92dd915a47aa396d6fd149c4a87fec53aa978511f6d941402256cfeb26f2db35129e370f25a453c688655a + languageName: node + linkType: hard + +"axobject-query@npm:^3.1.1": + version: 3.2.1 + resolution: "axobject-query@npm:3.2.1" + dependencies: + dequal: ^2.0.3 + checksum: a94047e702b57c91680e6a952ec4a1aaa2cfd0d80ead76bc8c954202980d8c51968a6ea18b4d8010e8e2cf95676533d8022a8ebba9abc1dfe25686721df26fd2 + languageName: node + linkType: hard + "babel-core@npm:^7.0.0-bridge.0": version: 7.0.0-bridge.0 resolution: "babel-core@npm:7.0.0-bridge.0" @@ -10449,6 +10609,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.0": + version: 4.21.9 + resolution: "browserslist@npm:4.21.9" + dependencies: + caniuse-lite: ^1.0.30001503 + electron-to-chromium: ^1.4.431 + node-releases: ^2.0.12 + update-browserslist-db: ^1.0.11 + bin: + browserslist: cli.js + checksum: 80d3820584e211484ad1b1a5cfdeca1dd00442f47be87e117e1dda34b628c87e18b81ae7986fa5977b3e6a03154f6d13cd763baa6b8bf5dd9dd19f4926603698 + languageName: node + linkType: hard + "browserslist@npm:^4.21.3": version: 4.21.4 resolution: "browserslist@npm:4.21.4" @@ -11056,6 +11230,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001503": + version: 1.0.30001509 + resolution: "caniuse-lite@npm:1.0.30001509" + checksum: b08a98bf884182741d015569173162e5dfb804da22a14cb18c052be6b5f04e32312ff849b31f787b85091d1b1dfd58b128d9878c96e3bb632a1a0a8761548407 + languageName: node + linkType: hard + "capital-case@npm:^1.0.4": version: 1.0.4 resolution: "capital-case@npm:1.0.4" @@ -13419,6 +13600,13 @@ __metadata: languageName: node linkType: hard +"damerau-levenshtein@npm:^1.0.8": + version: 1.0.8 + resolution: "damerau-levenshtein@npm:1.0.8" + checksum: d240b7757544460ae0586a341a53110ab0a61126570ef2d8c731e3eab3f0cb6e488e2609e6a69b46727635de49be20b071688698744417ff1b6c1d7ccd03e0de + languageName: node + linkType: hard + "dargs@npm:^4.0.1": version: 4.1.0 resolution: "dargs@npm:4.1.0" @@ -13945,6 +14133,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + "des.js@npm:^1.0.0": version: 1.0.1 resolution: "des.js@npm:1.0.1" @@ -14679,6 +14874,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.431": + version: 1.4.446 + resolution: "electron-to-chromium@npm:1.4.446" + checksum: 08b3f5fdece12e9305fef14fb83e085e7c6669689df4cb69ada067efe25ced42f23bbb438b460c1754a5b402f4a6c777486c0f5c8bf92f7763ccebb0c6acd7f6 + languageName: node + linkType: hard + "electron-window-state@npm:5.0.3": version: 5.0.3 resolution: "electron-window-state@npm:5.0.3" @@ -15163,7 +15365,7 @@ __metadata: languageName: node linkType: hard -"eslint-config-prettier@npm:8.8.0": +"eslint-config-prettier@npm:8.8.0, eslint-config-prettier@npm:>=8.0.0": version: 8.8.0 resolution: "eslint-config-prettier@npm:8.8.0" peerDependencies: @@ -15276,7 +15478,82 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:2.27.5": +"eslint-plugin-escompat@npm:^3.3.3": + version: 3.4.0 + resolution: "eslint-plugin-escompat@npm:3.4.0" + dependencies: + browserslist: ^4.21.0 + peerDependencies: + eslint: ">=5.14.1" + checksum: 8b138e09c674851ea220b2b76369149a3c11ebc859d856e860419511ea9378d636d679e4d6c48fcf9294db1d8f760c4ebc4e0945c6817e0bd47bdfe5937a6ff8 + languageName: node + linkType: hard + +"eslint-plugin-eslint-comments@npm:^3.2.0": + version: 3.2.0 + resolution: "eslint-plugin-eslint-comments@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + ignore: ^5.0.5 + peerDependencies: + eslint: ">=4.19.1" + checksum: c9fe273dd56699abdf7e416cfad0344eb50aa01564a5a9133e72d982defb89310bc2e9b0b148ce19c5190d7ff641223b0ba9e667a194bc48467c3dd0d471e657 + languageName: node + linkType: hard + +"eslint-plugin-filenames@npm:^1.3.2": + version: 1.3.2 + resolution: "eslint-plugin-filenames@npm:1.3.2" + dependencies: + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.upperfirst: 4.3.1 + peerDependencies: + eslint: "*" + checksum: 4048e9dfa9b22cf424edd5928832ce2b4a20dd10825eea7f13747e2cca2ce5fc9084da6a5f236fa17edce253ee36ccfb084cca61403775419dc1524c25b5ce5f + languageName: node + linkType: hard + +"eslint-plugin-github@npm:4.8.0": + version: 4.8.0 + resolution: "eslint-plugin-github@npm:4.8.0" + dependencies: + "@github/browserslist-config": ^1.0.0 + "@typescript-eslint/eslint-plugin": ^5.1.0 + "@typescript-eslint/parser": ^5.1.0 + aria-query: ^5.1.3 + eslint-config-prettier: ">=8.0.0" + eslint-plugin-escompat: ^3.3.3 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-filenames: ^1.3.2 + eslint-plugin-i18n-text: ^1.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-no-only-tests: ^3.0.0 + eslint-plugin-prettier: ^4.0.0 + eslint-rule-documentation: ">=1.0.0" + jsx-ast-utils: ^3.3.2 + prettier: ^2.2.1 + svg-element-attributes: ^1.3.1 + peerDependencies: + eslint: ^8.0.1 + bin: + eslint-ignore-errors: bin/eslint-ignore-errors.js + checksum: 9f9d5baef1cf4507a526c4c81adcad96309a096afc0a3ae32a2e1e3b06ea0534a552c4338ea7dbe68c020031340d90931c757e3b2a2c46758a7bf09cd19319f0 + languageName: node + linkType: hard + +"eslint-plugin-i18n-text@npm:^1.0.1": + version: 1.0.1 + resolution: "eslint-plugin-i18n-text@npm:1.0.1" + peerDependencies: + eslint: ">=5.0.0" + checksum: 4d3a8fc51e60ea7e6e834db359b284adcac57ac8149cf5beeffae0e07c14ec64ecab7a6ea3c12731ba13fce279452c2f22d43a017fe8790fa77fb27a674b8bf7 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:2.27.5, eslint-plugin-import@npm:^2.25.2": version: 2.27.5 resolution: "eslint-plugin-import@npm:2.27.5" dependencies: @@ -15341,6 +15618,32 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-jsx-a11y@npm:^6.7.1": + version: 6.7.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" + dependencies: + "@babel/runtime": ^7.20.7 + aria-query: ^5.1.3 + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + ast-types-flow: ^0.0.7 + axe-core: ^4.6.2 + axobject-query: ^3.1.1 + damerau-levenshtein: ^1.0.8 + emoji-regex: ^9.2.2 + has: ^1.0.3 + jsx-ast-utils: ^3.3.3 + language-tags: =1.0.5 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + semver: ^6.3.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: f166dd5fe7257c7b891c6692e6a3ede6f237a14043ae3d97581daf318fc5833ddc6b4871aa34ab7656187430170500f6d806895747ea17ecdf8231a666c3c2fd + languageName: node + linkType: hard + "eslint-plugin-n@npm:^15.1.0": version: 15.5.1 resolution: "eslint-plugin-n@npm:15.5.1" @@ -15359,6 +15662,28 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-no-only-tests@npm:^3.0.0": + version: 3.1.0 + resolution: "eslint-plugin-no-only-tests@npm:3.1.0" + checksum: 2a5de82f3a732dbd46792661dd0f8546cf819f76d8828968166dee35741e8039904ba473dafe1eed585f401a496d260c2c38354bb887c94bd4ced0ddca00fb62 + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^4.0.0": + version: 4.2.1 + resolution: "eslint-plugin-prettier@npm:4.2.1" + dependencies: + prettier-linter-helpers: ^1.0.0 + peerDependencies: + eslint: ">=7.28.0" + prettier: ">=2.0.0" + peerDependenciesMeta: + eslint-config-prettier: + optional: true + checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 + languageName: node + linkType: hard + "eslint-plugin-promise@npm:6.1.1, eslint-plugin-promise@npm:^6.0.0": version: 6.1.1 resolution: "eslint-plugin-promise@npm:6.1.1" @@ -15417,6 +15742,13 @@ __metadata: languageName: node linkType: hard +"eslint-rule-documentation@npm:>=1.0.0": + version: 1.0.23 + resolution: "eslint-rule-documentation@npm:1.0.23" + checksum: 38c99fb7f8624e7e2e246e5408ba712243f3a89738fc68cd9816953c6adc456c4aa6ca546b51b2e232b4f4a1ef644cfa9ddeaa4ec98cf90b56143d8368f9990e + languageName: node + linkType: hard + "eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" @@ -16008,6 +16340,13 @@ __metadata: languageName: node linkType: hard +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 + languageName: node + linkType: hard + "fast-equals@npm:^3.0.2": version: 3.0.2 resolution: "fast-equals@npm:3.0.2" @@ -18594,6 +18933,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.0.5": + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + languageName: node + linkType: hard + "ignore@npm:^5.1.1, ignore@npm:^5.2.0": version: 5.2.0 resolution: "ignore@npm:5.2.0" @@ -21192,6 +21538,18 @@ __metadata: languageName: node linkType: hard +"jsx-ast-utils@npm:^3.3.2, jsx-ast-utils@npm:^3.3.3": + version: 3.3.4 + resolution: "jsx-ast-utils@npm:3.3.4" + dependencies: + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + object.assign: ^4.1.4 + object.values: ^1.1.6 + checksum: a6a00d324e38f0d47e04f973d79670248a663422a4dccdc02efd6f1caf1c00042fb0aafcff1023707c85dea6f013d435b90db67c1c6841bf345628f0a720d8b3 + languageName: node + linkType: hard + "just-debounce@npm:^1.0.0": version: 1.1.0 resolution: "just-debounce@npm:1.1.0" @@ -21403,6 +21761,22 @@ __metadata: languageName: node linkType: hard +"language-subtag-registry@npm:~0.3.2": + version: 0.3.22 + resolution: "language-subtag-registry@npm:0.3.22" + checksum: 8ab70a7e0e055fe977ac16ea4c261faec7205ac43db5e806f72e5b59606939a3b972c4bd1e10e323b35d6ffa97c3e1c4c99f6553069dad2dfdd22020fa3eb56a + languageName: node + linkType: hard + +"language-tags@npm:=1.0.5": + version: 1.0.5 + resolution: "language-tags@npm:1.0.5" + dependencies: + language-subtag-registry: ~0.3.2 + checksum: c81b5d8b9f5f9cfd06ee71ada6ddfe1cf83044dd5eeefcd1e420ad491944da8957688db4a0a9bc562df4afdc2783425cbbdfd152c01d93179cf86888903123cf + languageName: node + linkType: hard + "last-run@npm:^1.1.0": version: 1.1.1 resolution: "last-run@npm:1.1.1" @@ -21744,6 +22118,13 @@ __metadata: languageName: node linkType: hard +"lodash.camelcase@npm:4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 + languageName: node + linkType: hard + "lodash.clonedeep@npm:^4.5.0": version: 4.5.0 resolution: "lodash.clonedeep@npm:4.5.0" @@ -21779,6 +22160,13 @@ __metadata: languageName: node linkType: hard +"lodash.kebabcase@npm:4.1.1": + version: 4.1.1 + resolution: "lodash.kebabcase@npm:4.1.1" + checksum: 5a6c59161914e1bae23438a298c7433e83d935e0f59853fa862e691164696bc07f6dfa4c313d499fbf41ba8d53314e9850416502376705a357d24ee6ca33af78 + languageName: node + linkType: hard + "lodash.memoize@npm:4.x": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -21821,6 +22209,13 @@ __metadata: languageName: node linkType: hard +"lodash.snakecase@npm:4.1.1": + version: 4.1.1 + resolution: "lodash.snakecase@npm:4.1.1" + checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8 + languageName: node + linkType: hard + "lodash.sortby@npm:^4.7.0": version: 4.7.0 resolution: "lodash.sortby@npm:4.7.0" @@ -21868,6 +22263,13 @@ __metadata: languageName: node linkType: hard +"lodash.upperfirst@npm:4.3.1": + version: 4.3.1 + resolution: "lodash.upperfirst@npm:4.3.1" + checksum: cadec6955900afe1928cc60cdc4923a79c2ef991e42665419cc81630ed9b4f952a1093b222e0141ab31cbc4dba549f97ec28ff67929d71e01861c97188a5fa83 + languageName: node + linkType: hard + "lodash@npm:4.17.21, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.2.1, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -26755,7 +27157,16 @@ __metadata: languageName: node linkType: hard -"prettier@npm:2.8.8": +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + +"prettier@npm:2.8.8, prettier@npm:^2.2.1": version: 2.8.8 resolution: "prettier@npm:2.8.8" bin: @@ -29192,6 +29603,7 @@ __metadata: cspell: 5.21.2 eslint: 8.39.0 eslint-interactive: 10.7.0 + eslint-plugin-github: 4.8.0 eslint-plugin-import: 2.27.5 eslint-plugin-jest: 27.2.1 eslint-plugin-promise: 6.1.1 @@ -31284,6 +31696,13 @@ __metadata: languageName: node linkType: hard +"svg-element-attributes@npm:^1.3.1": + version: 1.3.1 + resolution: "svg-element-attributes@npm:1.3.1" + checksum: b355db93d82cf5c8782e435a8d081f66ecea3714d403f193feed337b6e46f3490751dd560e03e1924f7cd63b0a86c379e5b10423513d1b04c9d2b5f4aee65160 + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4"